diff --git a/package-lock.json b/package-lock.json index 0a4b154..1cc6ed0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "music-metadata": "^11.7.3", "opfs-tools": "^0.7.2", "svelte-sonner": "^1.0.5", + "sveltekit-sitemap": "^1.0.21", "uuid": "^11.1.0" }, "devDependencies": { @@ -6127,6 +6128,12 @@ "svelte": "^5.0.0" } }, + "node_modules/sveltekit-sitemap": { + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/sveltekit-sitemap/-/sveltekit-sitemap-1.0.21.tgz", + "integrity": "sha512-Pc8hJFqTdP9vvJfpHfzMm0oSoWVp2I/vOgReTT0lM//ZUCnfdPjAqTc/PA11CFITCCksKOrtun/o3F8ZvMAldA==", + "license": "MIT" + }, "node_modules/tailwindcss": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.11.tgz", diff --git a/package.json b/package.json index 7279efb..fbd0ec4 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "music-metadata": "^11.7.3", "opfs-tools": "^0.7.2", "svelte-sonner": "^1.0.5", + "sveltekit-sitemap": "^1.0.21", "uuid": "^11.1.0" } } diff --git a/src/hooks.server.ts b/src/hooks.server.ts new file mode 100644 index 0000000..d307846 --- /dev/null +++ b/src/hooks.server.ts @@ -0,0 +1,6 @@ +// src/hooks.server.ts +import type { Handle } from "@sveltejs/kit"; +import { sitemapHook } from "sveltekit-sitemap"; +import { sitemap } from "./sitemap"; + +export const handle: Handle = sitemapHook(sitemap); \ No newline at end of file diff --git a/src/sitemap.ts b/src/sitemap.ts new file mode 100644 index 0000000..90f53e7 --- /dev/null +++ b/src/sitemap.ts @@ -0,0 +1,10 @@ +import type { RO_Sitemap } from 'sveltekit-sitemap'; + +export const sitemap = ({ + "/": true, + "/blah": false, + "/tracks": false, + "/upload": false +}) satisfies RO_Sitemap + +export type Sitemap = typeof sitemap diff --git a/vite.config.ts b/vite.config.ts index 9c66319..38dc112 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,6 +1,7 @@ import { sveltekit } from '@sveltejs/kit/vite'; import { defineConfig } from 'vite'; import { SvelteKitPWA } from '@vite-pwa/sveltekit'; +import { sitemapPlugin } from 'sveltekit-sitemap/dist/plugin.js'; import manifest from './static/manifest.json'; export default defineConfig({ @@ -29,7 +30,8 @@ export default defineConfig({ enabled: true, type: 'module' } - }) + }), + sitemapPlugin({ routesDir: './src/routes', sitemapFile: './src/sitemap.ts' }) ], optimizeDeps: { include: ['src/routes/**/+*.{js,ts,svelte}', 'src/hooks*.{js,ts}']