Skip to content

Commit 557e4c2

Browse files
committed
🚧 Add table of contents
1 parent 64e581b commit 557e4c2

File tree

4 files changed

+25
-1
lines changed

4 files changed

+25
-1
lines changed

‎packages/docs/src/lib/components/SiteNav.svelte‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
<script lang="ts">
2-
import { getNavigationItems } from "$lib/utils/getNavigationItems";
32
import { MediaQuery } from "svelte/reactivity";
43
4+
import { getNavigationItems } from "$lib/utils/getNavigationItems";
5+
56
const medium = new MediaQuery("min-width: 768px");
67
78
let { isOpen = $bindable() }: { isOpen: boolean } = $props();
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<script lang="ts">
2+
import type { MarkdocModule } from "markdoc-svelte"
3+
const { headings }: MarkdocModule = $props();
4+
5+
// Filter only h1 and h2 headings
6+
const filteredHeadings = headings?.filter((heading) => heading.level <= 2) ?? [];
7+
</script>
8+
9+
{#if filteredHeadings.length > 0}
10+
<ul>
11+
{#each filteredHeadings as heading}
12+
<li>
13+
<a href={`#${heading.id}`}>{heading.title}</a>
14+
</li>
15+
{/each}
16+
</ul>
17+
{/if}

‎packages/docs/src/lib/components/TopNav.svelte‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script lang="ts">
22
import { MediaQuery } from "svelte/reactivity";
3+
34
import SiteNav from "./SiteNav.svelte";
45
56
const medium = new MediaQuery("min-width: 768px");

‎packages/docs/src/routes/[...slug]/+page.svelte‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22
import type { PageProps } from "./$types";
33
44
import Sidebar from "$lib/components/Sidebar.svelte";
5+
import TableOfContents from "$lib/components/TableOfContents.svelte";
56
67
let { data }: PageProps = $props();
78
const title = $derived(data.page.frontmatter?.title ?? "A great page");
9+
console.log(data.page)
810
</script>
911

1012
<svelte:head>
@@ -20,4 +22,7 @@
2022
<h1>{title}</h1>
2123
<data.page.default />
2224
</div>
25+
<div class="hidden md:block">
26+
<TableOfContents headings={data.page.headings} />
27+
</div>
2328
</div>

0 commit comments

Comments
 (0)