feat: course website (Astro Starlight)

Pages (index, disclaimer, about), lockfile, root test:site script, fix for
Starlight 0.42 sidebar config and <details> rendering in generated MDX.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Lucas Winther
2026-10-29 18:35:29 +01:00
co-authored by Claude Opus 5.5
parent d41496655e
commit 699d038d1c
8 changed files with 5230 additions and 3 deletions
+1 -1
View File
@@ -79,7 +79,7 @@ test("sync_pairs_code_tabs", () => {
test("sync_strips_comments_and_escapes_mdx", () => {
const out = mdxSafeProse("a <!-- Task 17: re-verify --> b {x} and `{kept}` <details><summary>S</summary> 1 < 2");
assert.doesNotMatch(out, /<!--/);
assert.match(out, /a b \\\{x\\\} and `\{kept\}` <details><summary>S<\/summary> 1 &lt; 2/);
assert.match(out, /a b \\\{x\\\} and `\{kept\}`\n\n<details>\n\n<summary>S<\/summary>\n\n1 &lt; 2/);
const root = fixture({ "01-a": `# A\n\n<!-- hidden -->\n\n${FENCE}rust\nif a < b { <!-- keep --> }\n${FENCE}\n` });
const page = run(root)("01-a.mdx");
assert.doesNotMatch(page, /hidden/);