Formaat: de Marp-sleutellijst hangt aan geen poort en kan stil verouderen #1817
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#1817
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 staat
Sinds #1815 toetst
requiresWholeMarpBlockPreservationpositief tegenkMarpitDirectiveNamesinlib/services/marp_source_preservation.dart: alleeneen commentaar waarvan de sleutel in die lijst staat, laat het diablok als bron
staan. Dat verving de oude toets ("elk woord gevolgd door een dubbele punt"), die
gewone spreeknotities opat.
Wat daarvan het gevolg is
De oude toets ving élke toekomstige Marp-richtlijn vanzelf op. Deze lijst niet.
Voegt Marp er een toe — zeg
backdrop:— dan bewaart OciDeck een blok dat hemdraagt niet meer, en gaat de richtlijn bij het eerste opslaan verloren. Stil, en
pas merkbaar bij iemand die zijn deck ook met de echte Marp CLI rendert.
Dat is een bewuste afweging, geen vergissing: wat de brede toets kocht was
toekomstvastheid voor iets zeldzaams, wat ze kostte was een dagelijkse fout.
De afweging staat opgeschreven bij de lijst zelf, mét de omslagvoorwaarde. Dit
issue is die voorwaarde.
Twee wegen, en de tweede is de betere
Een poort op de lijst.
make check-marp(#1804) draait al de échte,gepinde Marp CLI vanuit
tool/marp-check. Dat is de plek om de sleutellijsttegen díe versie te toetsen: haal de richtlijnnamen uit de gepinde Marp-bron
(of toets ze functioneel — render een fixture met elke sleutel en kijk of
Marp er iets mee doet) en laat de poort vallen zodra Marp iets kent dat wij
niet kennen. Klein, en het houdt de lijst eerlijk bij elke pin-bump.
De doorgeeflus van #1810. Als een onbekend dia-directief bij het lezen
apart wordt gezet en bij het schrijven onveranderd teruggezet, dan is
"bewaren of niet" helemaal geen vraag meer — dan overleeft een onbekende
richtlijn hoe dan ook, en is de lijst alleen nog nodig om te bepalen of de
dia getypeerd mag blijven. Dat is de structurele oplossing; dit issue mag
ermee samenvallen zodra #1810 is opgepakt.
Toetsen
Bij weg 1: een poort die faalt op een sleutel die de gepinde Marp kent en
kMarpitDirectiveNamesniet. Bij weg 2: de regressietest van #1810, plus debestaande
test/marp_directive_note_test.dartdie de acht bekende sleutelsal vastzet.
Herkomst
Afgesproken bij de bewaker-beoordeling van #1815 (PR #1816), waar dit als
uitwisselbaarheidsregressie werd benoemd en de omslagvoorwaarde is vastgelegd.
Opgelost in PR #1823 (gemerged). Sectie F in
tool/marp-check/run.shextraheert de richtlijnnamen uit de gepinde Marp CLI en vergelijkt ze metkMarpitDirectiveNames. Faalt bij elke mismatch in beide richtingen. Commentaar inmarp_source_preservation.dartverwijst nu naar de poort.