feat(export): keuze-menu als kaartenraster in de HTML-export (#1162) #1196
No reviewers
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!1196
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/1162-menu-html-export"
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
De HTML-export tekent een keuze-menudia (
SlideType.menu, #1162) nu als hetzelfde kaartenraster als de app-preview, de presentator en de PDF-export. Voorheen kwam een menudia er als een platte lijst hyperlinks uit — de rasterlook ging verloren.Vondst tijdens de visuele keuring
Bij het renderen van de huidige uitvoer (via de in-app browser; de headless build hing) bleek niet alleen het raster te ontbreken, maar landden de
#anker-fragmentlinks nergens: marked v18 genereert geen kop-id's en de export gaf de<section>s geenid. De links wérkten dus feitelijk niet.Wijziging
renderMenuSlide(nieuw,lib/services/marp_html/marp_html_service_menu.dart) — vervangt de link-bullets door een grid van kaarten. Doel-blok =<a>naar zijn#ankermet accentrand; tekstblok = rustige<div>met een randkleur uit de tekstkleur; blokafbeelding als thumbnail. Kleuren komen inline uit hetThemeProfile(dezelfde alfa-waarden als_MenuBlockCardin de preview: rand 0.55/0.22, vulling 0.10/0.04), layout in_menuCss. Labels worden HTML-geëscaped; anker- en beeldpad gaan door_htmlAttr, DOMPurify is de tweede laag.iduit het anker (marp_html_service_markup.dart) — elke<section>krijgt nu eeniduitocideck_slide_anchor, zodat de menu-links (én elke handmatige[x](#anker)) landen.Verificatie
test/marp_html_menu_test.dart(7 gevallen): raster + kolomaantal, anker-link met accentrand, tekstblok zonder href, thumbnail, sectie-id, grid-CSS in de stylesheet, en HTML-escaping van het label.make checkgroen (exit 0).Stapelt bovenop de reeds gemergede menu-fase (#1192).
🤖 Generated with Claude Code