import fs from 'fs'; import { glob } from 'glob'; import { languages } from '$lib/languages'; function getURLForLanguage(lang: string, path: string): string { return `https://gpx.studio${lang === 'en' ? '' : `/${lang}`}${path}`; } function generateSitemap() { const pages = glob.sync('**/*.html', { cwd: 'build' }).map((page) => `/${page}`); let sitemap = '\n'; sitemap += '\n'; pages.forEach((page) => { const path = page.replace('/index.html', '').replace('.html', ''); const rootDir = path.split('/')[1]; if ( path.includes('embed') || path.includes('404') || languages[path] || languages[rootDir] ) { // Skip localized pages return; } Object.keys(languages).forEach((language) => { sitemap += `\n`; sitemap += ` ${getURLForLanguage(language, path)}\n`; Object.keys(languages).forEach((alternate) => { if (alternate === language) return; sitemap += ` \n`; }); sitemap += `\n`; }); }); sitemap += ''; return sitemap; } fs.writeFileSync('build/sitemap.xml', generateSitemap());