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
2 changed files with 13 additions and 1 deletions
Showing only changes of commit 3ccc5d2210 - Show all commits
+1 -1
View File
@@ -29,7 +29,7 @@ def parse(path: Path) -> tuple[dict, str]:
if end == -1:
return {}, text.rstrip()
fm = yaml.safe_load(text[4:end]) or {}
return fm, text[end + 5 :].lstrip('\n').rstrip()
return fm, text[end + 5 :].removeprefix("\n").rstrip()
def serialize(fm: dict, body: str) -> str:
+12
View File
@@ -72,6 +72,18 @@ def test_walk_nests_directory_after_its_index():
assert got == expected, f"wrong nesting: {got}"
def test_parse_roundtrip_body_with_leading_blank_line():
fm = {"title": "Test"}
body = "\nContent starts after blank line."
text = mt.serialize(fm, body)
with tempfile.TemporaryDirectory() as d:
p = Path(d) / "t.md"
p.write_text(text)
got_fm, got_body = mt.parse(p)
assert got_fm == fm, f"frontmatter mismatch: {got_fm!r}"
assert got_body == body, f"body mismatch: expected {body!r}, got {got_body!r}"
TESTS = [v for k, v in sorted(globals().items()) if k.startswith("test_")]