mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2025-09-02 16:52:31 +00:00
sitemap generation
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
export const languages: Record<string, string> = {
|
||||
'en': 'English',
|
||||
'fr': 'Français',
|
||||
};
|
||||
|
||||
export function getURLForLanguage(route: string | null, lang: string | null | undefined): string {
|
||||
|
@@ -1,9 +1,38 @@
|
||||
import fs from 'fs';
|
||||
import { glob } from 'glob';
|
||||
import { languages } from '$lib/languages';
|
||||
|
||||
function generateSitemap() {
|
||||
console.log('Generating sitemap...');
|
||||
const pages = glob.sync('*.html', { cwd: 'build' });
|
||||
|
||||
return '';
|
||||
let sitemap = '<?xml version="1.0" encoding="UTF-8"?>\n';
|
||||
sitemap += '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> xmlns:xhtml="http://www.w3.org/1999/xhtml">\n';
|
||||
|
||||
pages.forEach((page) => {
|
||||
const url = page.replace('.html', '').replace('index', '');
|
||||
|
||||
if (languages[url]) {
|
||||
// Skip localized pages
|
||||
return;
|
||||
}
|
||||
|
||||
Object.keys(languages).forEach((language) => {
|
||||
sitemap += `<url>\n`;
|
||||
sitemap += ` <loc>https://gpx.studio/${language === 'en' ? '' : language + '/'}${url}</loc>\n`;
|
||||
|
||||
Object.keys(languages).forEach((alternate) => {
|
||||
if (alternate === language) return;
|
||||
|
||||
sitemap += ` <xhtml:link rel="alternate" hreflang="${alternate}" href="https://gpx.studio/${alternate === 'en' ? '' : alternate + '/'}${url}" />\n`;
|
||||
});
|
||||
|
||||
sitemap += `</url>\n`;
|
||||
});
|
||||
});
|
||||
|
||||
sitemap += '</urlset>';
|
||||
|
||||
return sitemap;
|
||||
}
|
||||
|
||||
fs.writeFileSync('build/sitemap.xml', generateSitemap());
|
Reference in New Issue
Block a user