gpx.studio/website/src/routes/+layout.server.ts
2026-09-03 09:03:17 +09:00

38 lines
1.2 KiB
TypeScript

import { guides } from '$lib/components/docs/docs';
async function getModule(language: string | undefined, guide: string) {
language = language ?? 'en';
let subguide = undefined;
if (guide.includes('/')) {
[guide, subguide] = guide.split('/');
}
try {
return subguide
? await import(`./../lib/docs/${language}/${guide}/${subguide}.mdx`)
: await import(`./../lib/docs/${language}/${guide}.mdx`);
} catch {
// Unrecognized first path segment (e.g. a missing static asset like favicon.ico)
return subguide
? await import(`./../lib/docs/en/${guide}/${subguide}.mdx`)
: await import(`./../lib/docs/en/${guide}.mdx`);
}
}
export async function load({ params }) {
const { language } = params;
const guideTitles: Record<string, string> = {};
for (let guide of Object.keys(guides)) {
guideTitles[guide] = (await getModule(language, guide)).metadata.title;
for (let subguide of guides[guide]) {
guideTitles[`${guide}/${subguide}`] = (
await getModule(language, `${guide}/${subguide}`)
).metadata.title;
}
}
return {
guideTitles,
};
}