B-VINN-df-docs-obsidian-md-convergence
df-docs may be revamped wholesale, so this entry informs whatever replaces it rather than mandating work on the current site. The examined options: obsidian-astro is ruled out (df-docs is not a vault; zero block-id support; its tokenizer is the ancestor of obsidian-md’s). The structural fix is obsidian-md’s remark plugins in the Astro pipeline: code-span immunity by construction, coverage of every page instead of three opt-in call sites, block-id handling subsumed, resolver injected via a generated wikilink-routes.mjs module (the existing generated-module pattern). Two priced costs: roster table cells are pre-flattened and pipe-escaped in TS before remark runs, so the old transform survives for cells unless cell assembly is reworked; and the site should consume obsidian-md via a plugins-only subpath (see the obsidian-md packaging entry). Precondition per D-4QGN: capture current behavior in a conformance corpus before migrating.