diff --git a/site/lib/documentation.ts b/site/lib/documentation.ts index 23fecc2e..e07c0080 100644 --- a/site/lib/documentation.ts +++ b/site/lib/documentation.ts @@ -1,11 +1,11 @@ import type { Tag } from '$types/sanity'; -import { documentation, landings } from '$lib/sanity'; +import { documentation, landings, tutorials } from '$lib/sanity'; /** * Build documentation sections * @param {Tag} category * @param {string} lang - * @return {object} + * @return {object[]} */ export function buildSection(category: Tag, lang: string = 'en') { const sections = documentation @@ -29,6 +29,23 @@ export function buildSection(category: Tag, lang: string = 'en') { return [landing, sections].flat(); } +/** + * Build documentation tutorials + * @param {Tag} category + * @param {string} lang + * @return {object[] | null} + */ +export function buildTutorials(category: Tag, lang: string = 'en') { + const tuts = tutorials + .filter((l) => l._lang === lang) + .filter((l) => l.category.slug === category.slug) + .map((l) => ({ + title: l.title, + href: l._path, + })); + return tuts.length > 0 ? tuts : null; +} + /** * Build documentation topics * @param {string[]} paths Array of paths @@ -37,6 +54,7 @@ export function buildSection(category: Tag, lang: string = 'en') { export function buildTopics(paths: string[]) { return documentation .filter((d) => paths.includes(d._path)) + .sort((a, b) => a.title.localeCompare(b.title)) .sort((a, b) => a.weight - b.weight) .map((d) => ({ title: d.title, diff --git a/site/src/components/SectionNav.svelte b/site/src/components/SectionNav.svelte index 6a61bcc1..49b947e2 100644 --- a/site/src/components/SectionNav.svelte +++ b/site/src/components/SectionNav.svelte @@ -6,6 +6,8 @@ export let title: string; export let links: Array; + export let tutorials: Array; + export let ttitle: string; export let active: string; const buttonTitle = 'Open section navigation'; @@ -20,7 +22,9 @@ >