fix(document): mermaid-fence als gerenderde kaart in de visuele editor (#1920) #1926

Merged
brenno merged 3 commits from fix/mermaid-embed-visual-editor into main 2026-09-02 23:09:40 +00:00
Owner

Closes #1920.

DOCUMENT_MODE.md §4.3 belooft mermaid als gerenderde embed-kaart in de visuele modus. Lezer, voorvertoning, Pagina's, PDF en HTML-export tekenden het diagram al; de editor als enige niet.

De oorzaak was een andere dan het issue vermoedde. FallbackEmbedBuilder is er niet bij betrokken. De fence-scanner in markdown_visual_compatibility.dart slaat alles binnen een ```-fence bewust over, dus de visuele modus ging gewoon open — maar de codec kende geen mermaid-embed, en dan blijft er een gewoon Quill-codeblok over. De reparatie vraagt daarom een embed-syntax plus een builder, langs hetzelfde pad als de pentest-envelop.

Wat er verandert. De fence reist als één blok-embed (x-embed-mermaid), met beide ```-regels erin, en de terugweg schrijft hem verbatim weg — DeltaToMarkdown escapet leestekens, en een %%{init}-directive of een <br/> in een label is geen proza. De kaart hergebruikt DocumentMarkdownView, dezelfde weergave als de lezer: geen tweede renderpad, en op een machine zonder WebView dezelfde terugval op het codeblok. Alleen-lezen; bewerken gaat via Bron, net als bij de andere atomaire blokken.

Toetsing. Vijf tests, waarvan de dragende find.byType(DocMermaidView) is. Mutatieproef gedaan: met de syntaxregistratie eruit worden nul embeds gevonden en nul DocMermaidView-widgets — precies het gemelde symptoom. De negatieve test (een dart-fence blijft een codeblok) blijft dan groen, zoals het hoort. make check volledig groen.

Randgeval, bewust niet meegenomen. Een mermaid-fence in een lijstitem plakt aan de bulletregel. Nagemeten of dat nieuw is: nee — een dart-codeblok verliest daar vandaag al zijn fences volledig, een tabel verliest zijn bullet. Apart opgevoerd als #1925; de fix daarvoor raakt de codec voor codeblokken en tabellen net zo goed.

Bewaker overgeslagen, expliciet. Deze wijziging raakt het bestandsformaat niet: de fence blijft gewone Markdown, byte-getrouw heen en weer, en er komt geen afhankelijkheid of uitgaand verkeer bij. Wat wél een publieke belofte raakt — de gebruikersgids — is juist bijgesteld naar de waarheid in plaats van opgerekt.

🤖 Generated with Claude Code

Closes #1920. `DOCUMENT_MODE.md` §4.3 belooft mermaid als gerenderde embed-kaart in de visuele modus. Lezer, voorvertoning, Pagina's, PDF en HTML-export tekenden het diagram al; de editor als enige niet. **De oorzaak was een andere dan het issue vermoedde.** `FallbackEmbedBuilder` is er niet bij betrokken. De fence-scanner in `markdown_visual_compatibility.dart` slaat alles binnen een ```-fence bewust over, dus de visuele modus ging gewoon open — maar de codec kende geen mermaid-embed, en dan blijft er een gewoon Quill-codeblok over. De reparatie vraagt daarom een embed-syntax *plus* een builder, langs hetzelfde pad als de pentest-envelop. **Wat er verandert.** De fence reist als één blok-embed (`x-embed-mermaid`), met beide ```-regels erin, en de terugweg schrijft hem verbatim weg — `DeltaToMarkdown` escapet leestekens, en een `%%{init}`-directive of een `<br/>` in een label is geen proza. De kaart hergebruikt `DocumentMarkdownView`, dezelfde weergave als de lezer: geen tweede renderpad, en op een machine zonder WebView dezelfde terugval op het codeblok. Alleen-lezen; bewerken gaat via Bron, net als bij de andere atomaire blokken. **Toetsing.** Vijf tests, waarvan de dragende `find.byType(DocMermaidView)` is. Mutatieproef gedaan: met de syntaxregistratie eruit worden nul embeds gevonden en nul `DocMermaidView`-widgets — precies het gemelde symptoom. De negatieve test (een `dart`-fence blijft een codeblok) blijft dan groen, zoals het hoort. `make check` volledig groen. **Randgeval, bewust niet meegenomen.** Een mermaid-fence in een lijstitem plakt aan de bulletregel. Nagemeten of dat nieuw is: nee — een `dart`-codeblok verliest daar vandaag al zijn fences volledig, een tabel verliest zijn bullet. Apart opgevoerd als #1925; de fix daarvoor raakt de codec voor codeblokken en tabellen net zo goed. **Bewaker overgeslagen, expliciet.** Deze wijziging raakt het bestandsformaat niet: de fence blijft gewone Markdown, byte-getrouw heen en weer, en er komt geen afhankelijkheid of uitgaand verkeer bij. Wat wél een publieke belofte raakt — de gebruikersgids — is juist *bijgesteld* naar de waarheid in plaats van opgerekt. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
DOCUMENT_MODE.md §4.3 belooft mermaid als gerenderde embed-kaart in de
visuele modus. Lezer, voorvertoning, Pagina's, PDF en HTML-export tekenden
het diagram al; de editor als enige niet.

De oorzaak lag niet bij de vangnet-bouwer. De fence-scanner in
markdown_visual_compatibility.dart slaat alles binnen een ```-fence bewust
over, dus de visuele modus ging gewoon open — maar de codec kende geen
mermaid-embed, dus de fence werd een gewoon Quill-codeblok. De reparatie
vraagt daarom een embed-syntax *plus* een builder, langs hetzelfde pad als
de pentest-envelop.

De embed draagt de héle fence, beide ```-regels inbegrepen, en de terugweg
schrijft die verbatim weg: DeltaToMarkdown escapet leestekens, en een
%%{init}-directive of een <br/> in een label is geen proza.

De kaart hergebruikt DocumentMarkdownView — dezelfde weergave als de lezer,
dus geen tweede renderpad en dezelfde terugval op een codeblok waar geen
WebView is.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
docs: logboek en gebruikersgids voor de mermaid-kaart (#1920)
All checks were successful
scans / scans (pull_request) Successful in 2m30s
static-gate / static-gate (pull_request) Successful in 6m39s
05fbcd0274
De gids beloofde al dat de visuele modus mermaid én grafieken als
bewerkbare blokken toont. Dat was voor geen van beide waar. Mermaid klopt
nu — als alleen-lezen kaart, niet als bewerkbaar blok — en de grafiek staat
er als de uitzondering die hij is, in plaats van als stille onwaarheid.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
brenno force-pushed fix/mermaid-embed-visual-editor from 05fbcd0274
All checks were successful
scans / scans (pull_request) Successful in 2m30s
static-gate / static-gate (pull_request) Successful in 6m39s
to cb68c4b322
All checks were successful
scans / scans (pull_request) Successful in 2m8s
static-gate / static-gate (pull_request) Successful in 6m55s
2026-09-02 21:59:45 +00:00
Compare
brenno merged commit 2188e88ed2 into main 2026-09-02 23:09:40 +00:00
Sign in to join this conversation.
No description provided.