2024-06-26 20:33:01 +02:00
|
|
|
import fs from 'fs';
|
|
|
|
import { languages } from "./languages";
|
|
|
|
|
|
|
|
function getURL(lang: string, path: string = '/') {
|
|
|
|
return 'https://gpx.studio' + (lang === 'en' ? '' : ('/' + lang)) + path;
|
|
|
|
}
|
|
|
|
|
|
|
|
function generateSitemap() {
|
|
|
|
const sitemap = `<?xml version="1.0" encoding="UTF-8"?>
|
2024-06-26 22:52:38 +02:00
|
|
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">` +
|
2024-06-26 20:33:01 +02:00
|
|
|
|
|
|
|
Object.keys(languages).map((lang) => `
|
|
|
|
<url>
|
|
|
|
<loc>${getURL(lang)}</loc>${Object.keys(languages).map((lang2) => `
|
|
|
|
<xhtml:link rel="alternate" hreflang="${lang2}" href="${getURL(lang2)}"/>`).join('')}
|
|
|
|
</url>`).join('') +
|
|
|
|
|
|
|
|
Object.keys(languages).map((lang) => `
|
|
|
|
<url>
|
|
|
|
<loc>${getURL(lang, '/about')}</loc>${Object.keys(languages).map((lang2) => `
|
|
|
|
<xhtml:link rel="alternate" hreflang="${lang2}" href="${getURL(lang2, '/about')}"/>`).join('')}
|
|
|
|
</url>`).join('') +
|
|
|
|
|
|
|
|
`
|
|
|
|
</urlset>
|
|
|
|
`;
|
|
|
|
|
|
|
|
return sitemap;
|
|
|
|
}
|
|
|
|
|
|
|
|
fs.writeFileSync('build/sitemap.xml', generateSitemap());
|