27 lines
1.1 KiB
TypeScript
27 lines
1.1 KiB
TypeScript
import type { MetadataRoute } from "next";
|
|
|
|
const BASE = "https://puzzles.reverdin.eu";
|
|
const GAMES = ["queens", "tango", "zip", "sudoku", "patches"];
|
|
|
|
function todayISO(): string {
|
|
const now = new Date();
|
|
return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`;
|
|
}
|
|
|
|
export default function sitemap(): MetadataRoute.Sitemap {
|
|
const today = todayISO();
|
|
|
|
const staticRoutes: MetadataRoute.Sitemap = [
|
|
{ url: BASE, lastModified: today, changeFrequency: "daily", priority: 1 },
|
|
{ url: `${BASE}/archive`, lastModified: today, changeFrequency: "daily", priority: 0.5 },
|
|
{ url: `${BASE}/mentions-legales`, changeFrequency: "yearly", priority: 0.1 },
|
|
];
|
|
|
|
const gameRoutes: MetadataRoute.Sitemap = GAMES.flatMap((game) => [
|
|
{ url: `${BASE}/${game}`, lastModified: today, changeFrequency: "daily", priority: 0.9 },
|
|
{ url: `${BASE}/${game}/levels`, changeFrequency: "weekly", priority: 0.6 },
|
|
{ url: `${BASE}/${game}/${today}`, lastModified: today, changeFrequency: "daily", priority: 0.8 },
|
|
]);
|
|
|
|
return [...staticRoutes, ...gameRoutes];
|
|
}
|