-
Notifications
You must be signed in to change notification settings - Fork 1
/
route.ts
44 lines (39 loc) · 1.03 KB
/
route.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import { Locale, i18n } from "~/lib/i18n-config";
export const dynamic = "force-static";
type Paths = Array<{
path: string;
locales: Array<Locale>;
}>;
export async function GET() {
const paths = [
{
path: "/",
locales: ["en", "fr"],
},
{
path: "/resume.pdf",
locales: ["en", "fr"],
},
] satisfies Paths;
let sitemapContent = ``;
for (const path of paths) {
sitemapContent += `<url><loc>https://fredkiss.dev/${path.locales[0]}${path.path}</loc>`;
for (const locale of path.locales) {
sitemapContent += `
<xhtml:link
rel="alternate"
hreflang="${locale}"
href="https://fredkiss.dev/${locale}${path.path}"
/>`;
}
sitemapContent += `<lastmod>${new Date().toISOString()}</lastmod></url>`;
}
return new Response(
`<?xml version="1.0" encoding="UTF-8"?><urlset xmlns:xhtml="http://www.w3.org/1999/xhtml">${sitemapContent}</urlset>`,
{
headers: {
"content-type": "application/xml",
},
},
);
}