diff --git a/apps/svelte.dev/src/lib/server/content.ts b/apps/svelte.dev/src/lib/server/content.ts index 88dd3e177b..f996ff1a94 100644 --- a/apps/svelte.dev/src/lib/server/content.ts +++ b/apps/svelte.dev/src/lib/server/content.ts @@ -2,23 +2,21 @@ import { read } from '$app/server'; import type { Document, DocumentSummary } from '@sveltejs/site-kit'; import { create_index } from '@sveltejs/site-kit/server/content'; -const documents = import.meta.glob('../../../content/**/*.md', { +const documents = import.meta.glob('**/*.md', { + base: '../../../content', eager: true, query: '?url', import: 'default' }); -const assets = import.meta.glob( - ['../../../content/**/+assets/**', '../../../content/**/+assets/**/.env'], - { - eager: true, - query: '?url', - import: 'default' - } -); +const assets = import.meta.glob(['**/+assets/**', '**/+assets/**/.env'], { + base: '../../../content', + eager: true, + query: '?url', + import: 'default' +}); -// https://github.com/vitejs/vite/issues/17453 -export const index = await create_index(documents, assets, '../../../content', read); +export const index = await create_index(documents, assets, read); const months = 'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec'.split(' '); diff --git a/packages/site-kit/src/lib/server/content/index.ts b/packages/site-kit/src/lib/server/content/index.ts index a2f6defb2e..e7aa0bcf44 100644 --- a/packages/site-kit/src/lib/server/content/index.ts +++ b/packages/site-kit/src/lib/server/content/index.ts @@ -4,20 +4,18 @@ import type { Document } from '../../types'; export async function create_index( documents: Record, assets: Record, - base: string, read: (asset: string) => Response ): Promise> { const content: Record = {}; const roots: Document[] = []; - for (const key in documents) { - if (key.includes('+assets')) continue; + for (const file in documents) { + if (file.includes('+assets')) continue; - const file = key.slice(base.length + 1); const slug = file.replace(/(^|\/)[\d-]+-/g, '$1').replace(/(\/index)?\.md$/, ''); - const text = await read(documents[key]).text(); + const text = await read(documents[file]).text(); let { metadata, body } = extract_frontmatter(text); if (!metadata.title) { @@ -83,13 +81,12 @@ export async function create_index( } } - for (const key in assets) { - const path = key.slice(base.length + 1); + for (const path in assets) { const slug = path.slice(0, path.indexOf('+assets') - 1).replace(/(^|\/)\d+-/g, '$1'); const file = path.slice(path.indexOf('+assets') + 8); const document = content[slug]; - (document.assets ??= {})[file] = assets[key]; + (document.assets ??= {})[file] = assets[path]; } let prev: Document | null = null;