Formaat: een nieuw dia-directief overleeft geen opslag — weggegooid, of het wordt een notitie #1810
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#1810
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 nieuw
ocideck_*-commentaar in een diablok overleeft geen enkele opslag.Gemeten op
main, parse →generateSlide, met<!-- ocideck_iets: 0.62,0.28 -->op vier plaatsen:split-text, getypeerdebulletsImage_isTailNote)Er is dus geen plaats waar hij heel blijft: drie keer stil verlies, één keer
stille verandering van betekenis — de waarde landt in de notities van de
gebruiker, waar hij niet hoort en waar hij bij de volgende opslag als notitie
wordt teruggeschreven.
Waarom dit nu een issue is en niet "gewoon hoe het werkt"
Het formaatcontract (
FILE_FORMAT.md§3.0) belooft dit voor de front matter:sleutels die OciDeck niet kent blijven exact staan. Voor per-dia-directieven
bestaat die belofte niet, en het gevolg is dat élk toekomstig dia-directief bij
een oudere lezer verdwijnt. Dat is niet hypothetisch: het is precies de reden dat
het callout-ontwerp (#1801) zijn gegevens níet in een dia-commentaar kan zetten
en moest uitwijken naar de front matter.
Zolang dit blijft staan, is "een nieuw dia-directief" geen begaanbare weg — niet
voor callouts, en niet voor wat er daarna komt.
Twee gaten, en ze verdienen allebei een reparatie
De notitie-val.
_isTailNoteinlib/services/markdown_parse/markdown_service_parse_directives.dartmaakt vanelk onbekend commentaar aan het eind van een blok een presentatienotitie. Een
commentaar dat met
ocideck_begint is per definitie een directief en hoortdat nooit te worden. Dit is klein en op zichzelf al winst: het voorkomt dat
gegevens in andermans notities landen.
De doorgeeflus. Voor de andere drie plaatsen moet er een bewaarroute zijn:
een onbekend
ocideck_*-directief wordt bij het lezen apart gezet en bij hetschrijven onveranderd teruggezet, zoals
preservedMarpLinesdat al doet voorMarp-syntaxis die OciDeck niet modelleert. Dat is het echte werk, en het is
wat "een oud bestand blijft leesbaar én bij te werken" ook de andere kant op
waar maakt.
Toetsen
Een regressietest die een onbekend directief op alle vier de plaatsen door een
parse-en-opslag haalt en eist dat het er byte-voor-byte nog staat. Die test
faalt vandaag vier keer.
Herkomst
Gemeten tijdens het formaatontwerp voor #1801, met wegwerpprobes tegen
main.git diff v0.4.9..HEADover het parse/serialiseer-pad is leeg, dus dit geldtonverkort voor de uitgebrachte lezer.