OverviewFilesCommitsIssuesDocsReleasesPeers

favela-markdown commits / 63ba12b

spec/library: amend the dependency rule — the pinned dialect requires micromark
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
63ba12b012c414b132b48e96375f884b471d0811
by plankatron <fleeky@gmail.com> · 2026-09-05T22:46:46.000Z

Changed files (1) +16 -2

spec/library.md +16 -2
……@@ -64,8 +64,22 @@ fromBsky(rec) -> ImportedView
6464STRIP_VERSION -> string // consensus-critical (§10.3)
6565```
6666
67No dependencies beyond a CommonMark parser. Must run under Bare and Node alike (the daemon is
68Bare; the tests are Node), so no Node-only builtins.
67Must run under Bare and Node alike (the daemon is Bare; the tests are Node), so no Node-only
68builtins.
69
70⚠ **Amended 2026-09-05.** This previously said *"no dependencies beyond a CommonMark parser"*, which
71the pinned dialect makes impossible: §2.1 of `markdown-strip.md` requires CommonMark **plus six
72extensions**, and four of them — GFM strikethrough, GFM tables, footnotes, directives — change block
73or inline **structure**. Hand-rolling those is exactly how two implementations come to disagree,
74which is the one failure `markdown-strip.md` §1 exists to prevent.
75
76**Decision (user, 2026-09-05): micromark.** `strip()` depends on 9 direct packages
77(`mdast-util-from-markdown` plus the four extensions and their mdast halves), **57 packages
78transitively**. That is a real cost and it is the price of the pinned dialect, not an accident.
79
80The two remaining extensions stay in our code: **wiki-links and hashtags are lexical rules over a
81text run** (§3.6, §3.7 — the hashtag rule is given as a normative regex), so there is no structural
82ambiguity for an implementation to resolve differently.
6983
7084### 3.1 A record names its author by USER, never by DID
7185