38 lines
1.2 KiB
TypeScript
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,
|
|
};
|
|
}
|