37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import type { MetadataRoute } from "next";
|
|
import { getAllArticles } from "@/lib/blog/get-articles";
|
|
import { locales } from "@/middleware";
|
|
|
|
const siteUrl = (
|
|
process.env.NEXT_PUBLIC_SITE_URL ?? "https://matheoguilbert.fr"
|
|
).replace(/\/$/, "");
|
|
|
|
export default function sitemap(): MetadataRoute.Sitemap {
|
|
const now = new Date();
|
|
|
|
const staticPages: MetadataRoute.Sitemap = locales.flatMap((locale) => [
|
|
{
|
|
url: `${siteUrl}/${locale}`,
|
|
lastModified: now,
|
|
changeFrequency: "monthly",
|
|
priority: 1,
|
|
},
|
|
{
|
|
url: `${siteUrl}/${locale}/blog`,
|
|
lastModified: now,
|
|
changeFrequency: "weekly",
|
|
priority: 0.8,
|
|
},
|
|
]);
|
|
|
|
const blogPages: MetadataRoute.Sitemap = locales.flatMap((locale) =>
|
|
getAllArticles(locale).map((article) => ({
|
|
url: `${siteUrl}/${locale}/blog/${article.slug}`,
|
|
lastModified: new Date(article.date),
|
|
changeFrequency: "monthly",
|
|
priority: 0.7,
|
|
}))
|
|
);
|
|
|
|
return [...staticPages, ...blogPages];
|
|
} |