mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2025-09-02 16:52:31 +00:00
seo
This commit is contained in:
31
website/src/lib/sitemap.ts
Normal file
31
website/src/lib/sitemap.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
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"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">` +
|
||||
|
||||
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());
|
Reference in New Issue
Block a user