Shivasakthi-Restarunt/scripts/generate-sitemap.cjs
Alaguraj0361 107f07c035
Some checks failed
Build and Deploy Build Output / build (push) Has been cancelled
first commit
2025-09-26 21:09:39 +05:30

48 lines
1.4 KiB
JavaScript

const fs = require('fs');
const { SitemapStream, streamToPromise } = require('sitemap');
const path = require('path');
// ✅ Static pages
const staticLinks = [
{ url: '/', changefreq: 'daily', priority: 1.0 },
{ url: '/about', changefreq: 'weekly', priority: 0.7 },
{ url: '/menu', changefreq: 'weekly', priority: 0.7 },
{ url: '/blog', changefreq: 'weekly', priority: 0.7 },
{ url: '/contact', changefreq: 'monthly', priority: 0.5 }
];
// ✅ Dynamic blog posts (example)
const blogPosts = [
{ slug: 'the-flavors-of-north-india-more-than-just-curries' },
{ slug: 'the-secret-to-perfect-north-indian-curries' },
{ slug: 'the-rich-history-of-south-indian-cuisine' }
];
// Convert blog slugs to sitemap entries
const blogLinks = blogPosts.map(post => ({
url: `/blog/${post.slug}`,
changefreq: 'weekly',
priority: 0.6
}));
const allLinks = [...staticLinks, ...blogLinks];
async function generateSitemap() {
try {
const sitemap = new SitemapStream({ hostname: 'https://shivasakthi.ca/' });
const writeStream = fs.createWriteStream(path.resolve(__dirname, '../public/sitemap.xml'));
sitemap.pipe(writeStream);
allLinks.forEach(link => sitemap.write(link));
sitemap.end();
await streamToPromise(sitemap);
console.log('✅ sitemap.xml created with blog slugs!');
} catch (error) {
console.error('❌ Error creating sitemap.xml:', error);
}
}
generateSitemap();