From d4e1a98f146eb7f1499f8bf487ae89796ed7df0e Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Mon, 24 Feb 2025 13:20:28 +0400 Subject: [PATCH] fix: sitemap --- .gitignore | 1 + server/sitemap.js | 34 +++++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 53e9cf96a..337d031d2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ node_modules /build /.svelte-kit /.idea +/.zed /package .env .env.* diff --git a/server/sitemap.js b/server/sitemap.js index 923521074..affaef02b 100644 --- a/server/sitemap.js +++ b/server/sitemap.js @@ -6,17 +6,33 @@ import { defineEventHandler, setResponseHeader } from 'h3'; */ export async function sitemap() { console.info('Preparing Sitemap...'); - const manifest = await import('../build/server/manifest.js'); - const prerendered = manifest.prerendered; - const file_route_extensions = ['.json', '.xml']; - const routes = [...prerendered, ...collectThreads()].filter( - (route) => !file_route_extensions.some((ext) => route.endsWith(ext)) + const { manifest } = await import('../build/server/manifest.js'); + const sveltekit_routes = manifest._.routes + .filter((route) => route.params.length === 0) + .map((route) => route.id); + const threads = collectThreads(); + const all_routes = [...sveltekit_routes, ...threads]; + const document_routes = all_routes.filter( + (route) => !['.json', '.xml'].some((ext) => route.endsWith(ext)) ); + const routes = new Set(document_routes); console.info(`Sitemap loaded with ${routes.length} routes!`); + console.group(); + console.info(`sveltekit: ${sveltekit_routes.length}`); + console.info(`threads: ${threads.length}`); + console.groupEnd(); - const sitemap = ` - - ${routes + const sitemap = ` + + + ${[...routes] .map( (route) => ` https://appwrite.io${route} @@ -24,7 +40,7 @@ export async function sitemap() { ` ) .join('')} - `; + `.trim(); return defineEventHandler((event) => { setResponseHeader(event, 'Content-Type', 'application/xml');