From dc8e987d61c2795444cb897e976f94551d826b0e Mon Sep 17 00:00:00 2001 From: Djeex Date: Tue, 11 Aug 2026 09:12:51 +0000 Subject: [PATCH] feat: replace sitemap module with custom Nitro route (fixes baseURL /fr/ conflict) --- nuxt.config.ts | 10 ---------- server/routes/sitemap.xml.ts | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 server/routes/sitemap.xml.ts diff --git a/nuxt.config.ts b/nuxt.config.ts index d5fa1d6..24f47c5 100755 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -2,7 +2,6 @@ export default defineNuxtConfig({ // https://github.com/nuxt-themes/docus css: ['~/assets/css/extra.css'], extends: ['@nuxt-themes/docus'], - modules: ['@nuxtjs/sitemap'], devtools: { enabled: false }, colorMode: { preference: 'dark', @@ -45,14 +44,5 @@ export default defineNuxtConfig({ } }, - site: { - url: 'https://docu.djeex.fr' - }, - - sitemap: { - autoLastmod: true, - urls: ['https://docu.djeex.fr/fr'] - }, - compatibilityDate: '2024-10-24' }) \ No newline at end of file diff --git a/server/routes/sitemap.xml.ts b/server/routes/sitemap.xml.ts new file mode 100644 index 0000000..ec3f72d --- /dev/null +++ b/server/routes/sitemap.xml.ts @@ -0,0 +1,19 @@ +import { serverQueryContent } from '#content/server' + +// generates /fr/sitemap.xml without @nuxtjs/sitemap (incompatible with baseURL /fr/) +export default defineEventHandler(async (event) => { + const docs = await serverQueryContent(event).find() + + const urls = docs + .filter((doc: any) => doc._path && !doc._path.startsWith('/_')) + .map((doc: any) => ` https://docu.djeex.fr/fr${doc._path}`) + .join('\n') + + const sitemap = ` + +${urls} +` + + setHeader(event, 'Content-Type', 'application/xml') + return sitemap +})