diff --git a/next-sitemap.config.js b/next-sitemap.config.js index 123be27..09005b5 100755 --- a/next-sitemap.config.js +++ b/next-sitemap.config.js @@ -1,8 +1,44 @@ +const fs = require('fs'); +const path = require('path'); + +// Helper function to recursively get all routes from app/ folder +function getAllAppRoutes(dir = 'app', prefix = '') { + const routes = []; + const items = fs.readdirSync(dir); + + items.forEach((item) => { + const fullPath = path.join(dir, item); + const stat = fs.statSync(fullPath); + + if (stat.isDirectory()) { + if (item === 'api') return; // skip API routes + routes.push(...getAllAppRoutes(fullPath, `${prefix}/${item}`)); + } else if (item.endsWith('.js') || item.endsWith('.tsx')) { + let route = `${prefix}/${item.replace(/\.js|\.tsx$/, '')}`; + if (route.endsWith('/page')) route = route.replace('/page', ''); + routes.push(route); + } + }); + + return routes; +} + /** @type {import('next-sitemap').IConfig} */ const config = { - siteUrl: 'https://dsavisualizer.in', // <-- Update this to your custom domain + siteUrl: 'https://dsavisualizer.in', generateRobotsTxt: true, sitemapSize: 5000, + transform: async (config, path) => ({ + loc: path, + lastmod: new Date().toISOString(), + }), + additionalPaths: async (config) => { + const appRoutes = getAllAppRoutes(); // auto-detect all pages + return appRoutes.map(route => ({ + loc: route, + lastmod: new Date().toISOString(), + })); + }, }; module.exports = config; \ No newline at end of file diff --git a/public/sitemap-0.xml b/public/sitemap-0.xml index c25e354..b1574c6 100755 --- a/public/sitemap-0.xml +++ b/public/sitemap-0.xml @@ -1,48 +1,4 @@ -https://dsavisualizer.in/blogs/Content/timeRequired2025-07-15T17:13:06.119Zdaily0.7 -https://dsavisualizer.in/blogs/Content/dsaWebDev2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/blogs/Content/whatIsDS2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/login2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/operations/comparison2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/blogs2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/types/circular2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/operations/merge2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/types/doubly2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/implementation/array2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/operations/reverse2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/types/singly2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/implementation/linkedList2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/types/deque2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/types/circular2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/operations/deletion2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/operations/enqueue-dequeue2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/operations/traversal2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/types/multiple2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/types/singleEnded2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/searching/binarysearch2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/sorting/bubblesort2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/sorting/mergesort2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/searching/linearsearch2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/sorting/quicksort2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/operations/isfull2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/types/priority2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/sorting/selectionsort2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/implementation/usingLinkedList2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/sorting/insertionsort2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/linkedList/operations/insertion2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/polish/postfix2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/operations/peek-front2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/implementation/usingArray2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/trees/traversing/in-order2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/trees/binaryTree/types2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/queue/operations/isempty2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/peek2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/isempty2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/isfull2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/push-pop2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/visualizer/stack/polish/prefix2025-07-15T17:13:06.120Zdaily0.7 -https://dsavisualizer.in/blogs/Content/dsaDifferent2025-07-15T17:13:06.120Zdaily0.7 +https://dsavisualizer.in/contexts/AuthContext2025-10-04T18:29:23.213Z \ No newline at end of file diff --git a/public/sitemap.xml b/public/sitemap.xml index 39fed00..ee6c9a7 100755 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -1,3 +1,4 @@ +https://dsavisualizer.in/sitemap-0.xml \ No newline at end of file