fix(html-export): presentatielogo op elke dia in de HTML-export #1486
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!1486
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/html-export-logo"
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 & waarom
Bij het exporteren van een deck naar de zelfstandige HTML (dia-modus) kwam het stijlprofiel-logo niet mee. In de app, de beamer en de PDF/PPTX ligt datzelfde logo op elke dia; de HTML-dia-export kende alleen het documentlogo van de doorlopende documentmodus. Wie zijn deck als losse dia's naar HTML exporteerde, gaf de ontvanger dus een deck zonder logo — inconsistent met elk ander formaat.
Oorzaak
MarpHtmlService.buildemitteerde het logo uitsluitend via_withDocumentChrome(kop/voetband), en dat pad draait alleen bijcontinuous: true. De dia-modus (continuous: false) stuurde geen enkel logo mee.Oplossing
_presentationLogoCss(inmarp_html_service_images.dart): legt het logo als ingeslotendata:-URI op elke logo-dia via.slide.logo-safe::before. Een pseudo-element, want het renderscript wist deinnerHTMLvan elke sectie voordat het de markdown erin zet — een echt<img>zou die reset niet overleven.kLogo*InsetFraction,logoSafeReserveuitrich_text_layout.dart), zodat de HTML precies toont wat de presentator/PDF al gaven._renderSectionstagt een dialogo-safe, tenzij die metno-logoafziet van het logo — spiegelthasLogo && slide.showLogoinMarkdownService._withDocumentChrome); geen dubbel logo.buildliep hierdoor over de method-length-ratchet (129); het laden van de webbundels is uitgetild naar_loadExportBundles, waarnabuildweer 120 regels is.Test
Bug krijgt een regressietest (
test/marp_html_presentation_logo_test.dart) — eerst rood tegen de onherstelde code, nu groen. Pint: aanwezigheid + offlinedata:-URI, hoek/maat (rechtsonder én linksboven), per-diano-logo-opt-out, en het uitblijven bij een logoloos thema, bij een niet-insluitbaar logo, en in de documentmodus.Visueel gecontroleerd door de export echt te openen: LibreKAT (linksonder) en Vigilis (rechtsboven) tonen het logo correct; een
no-logo-dia niet.make checkgroen (9360 tests, dekking 86,9%, per-file-vloer 0 eronder)make check-secretsschoon (gitleaks + trufflehog)make sastschoon (semgrep, 0 bevindingen)Documentatie
USER_GUIDE en KNOWN_LIMITATIONS documenteerden (sinds #1330) dat het logo bewust wordt weggelaten; die belofte is bijgewerkt naar de werkelijkheid. SOURCE_MAP beschrijft de nieuwe route. De .nl-doc-varianten zijn machinevertalingen (Engels leidend) en worden in batch geregenereerd.
Bewaker (stap 2c)
Expliciet overgeslagen: deze wijziging raakt niet het bestandsformaat, de opslag, een afhankelijkheid of uitgaand verkeer — het logo reist juist ingesloten en offline mee (CSP
img-src ... data:). De docwijziging corrigeert alleen een verouderde beperking; geen nieuwe belofte of vastzetting.Co-Authored-By: Claude Opus 4.8