docs: migrate the manual to a Starlight documentation site #72

Merged
rootiest merged 15 commits from docs-starlight-site into main 2026-07-26 04:27:30 +00:00
Showing only changes of commit 424a3c76ab - Show all commits
+19 -4
View File
@@ -126,13 +126,20 @@ def _normalise(text: str) -> str:
def test_concat_roundtrips_original():
"""The concat of manual/ must reproduce the original fish-config.md.
"""The concat of manual/ must reproduce the original fish-config.md exactly.
Prefers docs/fish-config.md.orig (a snapshot of the pre-migration file)
when present. Once that snapshot is deleted post-migration,
docs/fish-config.md IS the concat output regenerated in Step 5, so
falling back to it turns this into an idempotency regression check
instead of going red for a missing file.
The pass/fail decision is an exact (raw-text) comparison, not a
whitespace-normalised one. Blank lines are load-bearing for pandoc
(`blank_before_header` is on by default): losing them merges paragraphs
and stops headings being headings, so a test that tolerated blank-line
or line-joining drift would stay green while the man page silently
broke. `_normalise` is used only afterwards, to build a readable diff.
"""
import build_manual
@@ -142,14 +149,22 @@ def test_concat_roundtrips_original():
if not original.exists():
original = docs / "fish-config.md"
label = "fish-config.md"
got = _normalise(build_manual.build_concat(docs / "manual"))
want = _normalise(original.read_text())
got = build_manual.build_concat(docs / "manual")
want = original.read_text()
if got != want:
norm_got = _normalise(got)
norm_want = _normalise(want)
if norm_got == norm_want:
raise AssertionError(
"concat differs from original only in whitespace/blank lines "
"(exact comparison failed, normalised comparison passed) — "
"blank lines are load-bearing for pandoc, this is a real regression"
)
import difflib
diff = list(
difflib.unified_diff(
want.split("\n"), got.split("\n"), label, "concat", lineterm="", n=1
norm_want.split("\n"), norm_got.split("\n"), label, "concat", lineterm="", n=1
)
)[:40]
raise AssertionError("concat differs from original:\n" + "\n".join(diff))