Mermaid-flowchart mist pijlpunten (flutter_svg rendert geen <marker>) #941
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#941
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wat er misgaat
Een Mermaid-flowchart (bv. de kat-beslisboom) toont de verbindingslijnen zonder pijlpunten. Daardoor is de richting van de pijlen formeel niet af te lezen: je ziet dat twee knopen verbonden zijn, maar niet welke kant het op loopt.
Oorzaak
Mermaid tekent elke pijlpunt met een SVG-
<marker>(marker-end="url(#…)").flutter_svg(vector_graphics) rendert<marker>niet — het negeert ze — ensanitize_svg.darthaalt ze er dan ook uit (de allow-list spiegelt precies wat de lezer aankan). Gevolg: de lijnen blijven, de pijlpunten verdwijnen.Oplossing
Dezelfde aanpak als de stijl-inliner (
svg_style_inline.js, #862): terwijl de SVG in de DOM hangt, per edge met een marker het eindpunt en de richting meten (getPointAtLength) en er een expliciete<polygon>-driehoek neerzetten die flutter_svg wél tekent.sanitize_svg.dartlaatpolygon/points/fillstaan. Werkt voor beide renderpaden (desktop-WebView en web) omdat beide de inliner al aanroepen.Geldt voor de presentatie/preview/thumbnail/export via flutter_svg; de offline-HTML-export rendert mermaid native en had de pijlen al.
Verholpen in #943, gemerged naar main (commit
fdd7c118).svg_style_inline.jszet mermaids marker-pijlpunten nu om in expliciete<polygon>-driehoeken (eindpunt + richting via getPointAtLength), die flutter_svg wél tekent. Geverifieerd op de macOS-app: de pijlpunten verschijnen correct op de kat-beslisboom. Regressietest intest/sanitize_svg_test.dart.