diff --git a/website/src/lib/components/docs/DocsContainer.svelte b/website/src/lib/components/docs/DocsContainer.svelte
new file mode 100644
index 00000000..6340a8c7
--- /dev/null
+++ b/website/src/lib/components/docs/DocsContainer.svelte
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
diff --git a/website/src/lib/components/docs/DocsLoader.svelte b/website/src/lib/components/docs/DocsLoader.svelte
deleted file mode 100644
index 24777557..00000000
--- a/website/src/lib/components/docs/DocsLoader.svelte
+++ /dev/null
@@ -1,112 +0,0 @@
-
-
-{#if module !== undefined}
- {#if titleOnly}
- {metadata.title}
- {:else}
-
-
-
- {/if}
-{/if}
-
-
diff --git a/website/src/lib/components/embedding/Embedding.svelte b/website/src/lib/components/embedding/Embedding.svelte
index 7b89e517..fe3ee594 100644
--- a/website/src/lib/components/embedding/Embedding.svelte
+++ b/website/src/lib/components/embedding/Embedding.svelte
@@ -1,272 +1,269 @@
-
-
-
-
-
- {#if $fileObservers.size > 1}
-
-
-
- {/if}
-
-
-
- {#if options.elevation.show}
- dataset !== null)}
- elevationFill={options.elevation.fill}
- panelSize={options.elevation.height}
- showControls={options.elevation.controls}
- class="py-2"
- />
- {/if}
-
+
+
+
+
+
+ {#if $fileObservers.size > 1}
+
+
+
+ {/if}
+
+
+
+ {#if options.elevation.show}
+ dataset !== null)}
+ elevationFill={options.elevation.fill}
+ panelSize={options.elevation.height}
+ showControls={options.elevation.controls}
+ class="py-2"
+ />
+ {/if}
+
diff --git a/website/src/routes/[[language]]/+page.svelte b/website/src/routes/[[language]]/+page.svelte
index f727de46..586de4de 100644
--- a/website/src/routes/[[language]]/+page.svelte
+++ b/website/src/routes/[[language]]/+page.svelte
@@ -1,6 +1,6 @@
-
- {#each Object.keys(guides) as guide}
-
- {#each guides[guide] as subGuide}
-
- {/each}
- {/each}
-
-
-
-
+
+ {#each Object.keys(guides) as guide}
+
+ {#each guides[guide] as subGuide}
+
+ {/each}
+ {/each}
+
+
+
+
diff --git a/website/src/routes/[[language]]/help/+layout.ts b/website/src/routes/[[language]]/help/+layout.ts
new file mode 100644
index 00000000..da8f2423
--- /dev/null
+++ b/website/src/routes/[[language]]/help/+layout.ts
@@ -0,0 +1,32 @@
+import { guides } from '$lib/components/docs/docs.js';
+
+async function getModule(language: string | undefined, guide: string) {
+ language = language ?? 'en';
+ let subguide = guide.includes('/') ? guide.split('/').pop() : undefined;
+ if (subguide) {
+ guide = guide.replace(`/${subguide}`, '');
+ }
+ return subguide
+ ? await import(`./../../../lib/docs/${language}/${guide}/${subguide}.mdx`)
+ : await import(`./../../../lib/docs/${language}/${guide}.mdx`);
+}
+
+export async function load({ params }) {
+ const { language } = params;
+
+ const guideTitles: Record = {};
+ for (let guide of Object.keys(guides)) {
+ {
+ const module = await getModule(language, guide);
+ guideTitles[guide] = module.metadata.title;
+ }
+ for (let subguide of guides[guide]) {
+ const module = await getModule(language, `${guide}/${subguide}`);
+ guideTitles[`${guide}/${subguide}`] = module.metadata.title;
+ }
+ }
+
+ return {
+ guideTitles
+ };
+}
\ No newline at end of file
diff --git a/website/src/routes/[[language]]/help/+page.svelte b/website/src/routes/[[language]]/help/+page.svelte
index f54521de..619657d7 100644
--- a/website/src/routes/[[language]]/help/+page.svelte
+++ b/website/src/routes/[[language]]/help/+page.svelte
@@ -1,9 +1,12 @@
-
@@ -18,7 +21,7 @@
{guideIcons[guide]}
-
+ {data.guideTitles[guide]}
{#each guides[guide] as subGuide}
@@ -28,7 +31,7 @@
class="h-fit px-0 py-1 text-muted-foreground text-base text-center whitespace-normal"
>
-
+ {data.guideTitles[`${guide}/${subGuide}`]}
{/each}
diff --git a/website/src/routes/[[language]]/help/[...guide]/+page.svelte b/website/src/routes/[[language]]/help/[...guide]/+page.svelte
index 645208a1..eb675c3b 100644
--- a/website/src/routes/[[language]]/help/[...guide]/+page.svelte
+++ b/website/src/routes/[[language]]/help/[...guide]/+page.svelte
@@ -1,36 +1,42 @@
-
+
+
+
- {#if previousGuide}
+ {#if data.previousGuide}
{/if}
- {#if nextGuide}
+ {#if data.nextGuide}
{/if}
diff --git a/website/src/routes/[[language]]/help/[...guide]/+page.ts b/website/src/routes/[[language]]/help/[...guide]/+page.ts
new file mode 100644
index 00000000..9d116c0d
--- /dev/null
+++ b/website/src/routes/[[language]]/help/[...guide]/+page.ts
@@ -0,0 +1,30 @@
+import { getNextGuide, getPreviousGuide } from "$lib/components/docs/docs";
+
+async function getModule(language: string | undefined, guide: string) {
+ language = language ?? 'en';
+ let subguide = guide.includes('/') ? guide.split('/').pop() : undefined;
+ if (subguide) {
+ guide = guide.replace(`/${subguide}`, '');
+ }
+ return subguide
+ ? await import(`./../../../../lib/docs/${language}/${guide}/${subguide}.mdx`)
+ : await import(`./../../../../lib/docs/${language}/${guide}.mdx`);
+}
+
+export async function load({ params }) {
+ const { guide, language } = params;
+
+ const previousGuide = getPreviousGuide(guide);
+ const nextGuide = getNextGuide(guide);
+
+ const module = await getModule(language, guide);
+ const previousModule = previousGuide ? await getModule(language, previousGuide) : undefined;
+ const nextModule = nextGuide ? await getModule(language, nextGuide) : undefined;
+ return {
+ component: module.default,
+ previousGuide,
+ previousGuideTitle: previousModule?.metadata.title,
+ nextGuide,
+ nextGuideTitle: nextModule?.metadata.title,
+ };
+}
\ No newline at end of file