feat(documentmodus): paginaopmaak kan met het document meereizen #1525
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!1525
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/paginaopmaak-per-document"
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?
Sluit #1511. Ontwerp v2, na een blokkade van de bewaker op v1.
Waarom
Paginamaat, marges en drukkersafloop stonden alleen app-breed. Hetzelfde
.mdpagineerde bij een ander dus anders, en van een verstuurde PDF was nergens terug te vinden met welke instellingen hij was gemaakt. De afloop is bovendien geen voorkeur maar een eigenschap van dít drukwerk.De sleutels: vocabulaire dat elders werkt
Pandoc voert dit uit: wie het bestand door zijn eigen Pandoc haalt krijgt dezelfde pagina, zonder OciDeck.
Wat v1 blokkeerde: het eerste voorstel gebruikte
ocideck_page_size:enocideck_page_margins: 25,25,20,20,3. FILE_FORMAT.md §14.1 belooft dat OciDeck géén eigen sleutels toevoegt —theme:was daar geen uitzondering op, want die kennen Pandoc, Obsidian en GitHub al. En de compacte cijferreeks was een interne opslagvorm die publiek werd, met een echte val: die volgorde is boven,onder,links,rechts terwijlcssMarginin dezelfde klasse de CSS-volgorde boven,rechts,onder,links schrijft. Wie dat als CSS-achtig leest drukt stil een verkeerde tekstspiegel af.Met afloop of liggend dragen expliciete maten het verhaal (
paperwidth=216mm,paperheight=303mm,…), want dan is het vel niet meer het snijformaat en zou een papiernaam liegen. Bij inlezen wordt de maat teruggeleid uit het ISO-rooster en het verschil als afloop herkend.Volgorde en schrijfgedrag
Document → instelling (
effectiveDocumentPageSetup), zoalseffectiveDocumentStyleNamedat voor de stijl doet. Maat en marges gelden los van elkaar.Schrijven gebeurt alleen op verzoek: de indicator in de hoek toont nu ook wáár de opmaak vandaan komt (speld = uit dit document), en een klik vraagt expliciet om bevestiging. De sleutels landen in het bestand van de gebruiker; dat hoort een besluit te zijn, geen schakelaar.
Het documentpad heeft nu een eigendomsregister (
kDocumentOwnedKeys+kDocumentRetiredKeys), zoals het deckpad al had, en een ingetrokken sleutel verdwijnt bij het eerstvolgende bewuste schrijven. Zonder dat is er geen pad om een sleutel ooit nog uit bestaande bestanden te krijgen.Twee bugs die de documentatieplicht vond
Door de code naast de tekst te leggen:
papersize:, maar het leespad keek alleen naar díe sleutel — dus precies de documenten die OciDeck zelf had vastgelegd vielen bij het inlezen terug op de instelling. De zoektocht over het ISO-rooster vond de maat al en gooide hem weg.Beide vastgepind, inclusief een test over alle vier de combinaties staand/liggend × met/zonder afloop.
Eén die de gate vond, en die erger was dan hij leek
De klikbare indicator was een kale
InkWell, en dat liet de semantiek-opbouw van Flutter vastlopen (identical(childRenderObject, parentRenderObject)). Met een schermlezer aan was dat een crash geweest, niet alleen een rode test. Het is nu eenTextButton— inhoudelijk ook het juiste widget, want hij opent een dialoog en hoort dus knop-semantiek, toetsenbordfocus en een focusring te hebben. De poortwachter heeft de oorzaak vastgesteld door te bisecten en daarna gericht te variëren, niet door te gokken.Daarnaast trapte de speld op de contrastpoort (
colorScheme.primaryals icoonkleur) en is dat nuAppPalette.accentInk.Documentatie
§14.1 zegt nu expliciet wat er al gold: geen eigen vocabulaire, wél sleutels die andere gereedschappen uitvoeren. §14.5 gaat van "de enige sleutel" naar een gesloten set met register en uitgang. §14.7 kreeg een zichtbare koerswijzigingsnotitie — die paragraaf legde gisteren nog als bewuste keuze vast dat er niets naar het
.mdwordt geschreven, en dat stil omkeren zou navolgbaarheid kosten. Verder DOCUMENT_MODE §15, USER_GUIDE, SOURCE_MAP, GLOSSARY en CHANGELOG.Restpunt: de
.nl.md-vertalingen van FILE_FORMAT, USER_GUIDE en GLOSSARY lopen achter; die horen viamake translate-docsbijgetrokken te worden, niet met de hand.l10n
Zeven nieuwe sleutels × 31 talen. De nieuwe wezenpoort herkent ze alle zeven als gebruikt; basislijn blijft 0.
Poorten
make checkgroen (9585 tests, dekking 86,9%),make check-l10n-orphansgroen.make check-secretsgroen,make sastgroen (0 findings).Paginamaat, marges en drukkersafloop stonden alleen app-breed. Hetzelfde .md pagineerde bij een ander dus anders, en van een verstuurde PDF was nergens terug te vinden met welke instellingen hij was gemaakt. Een document kan de opmaak nu zelf dragen, in vocabulaire dat Pandoc écht uitvoert: papersize: a4 geometry: top=25mm,bottom=25mm,left=20mm,right=20mm Wie het bestand door zijn eigen Pandoc haalt krijgt dezelfde pagina, zonder OciDeck. Een eigen ocideck_page_size-sleutel zou bytes meesturen die alleen hier betekenis hebben, en het formaat belooft in §14.1 dat OciDeck geen eigen sleutels toevoegt. Met afloop dragen expliciete maten het verhaal (paperwidth/paperheight), want dan is het vel groter dan het snijformaat en zou een papiernaam liegen. Bij inlezen wordt de afloop teruggeleid uit het verschil met een ISO-maat; dat is een gemak voor de interface, geen betekenis in het bestand. Schrijven gebeurt alleen op verzoek, via de paginamaat-indicator in de hoek — die toont nu ook wáár de opmaak vandaan komt. Een dialoog vraagt het expliciet: de sleutels landen in het bestand van de gebruiker, en dat hoort een besluit te zijn dat je neemt, niet een dat je per ongeluk aanzet. Het documentpad heeft nu een eigendomsregister (kDocumentOwnedKeys plus een lijst voor ingetrokken sleutels), zoals het deckpad dat al had. Zonder dat is er geen pad om een sleutel ooit nog uit bestaande bestanden te krijgen — de uitgang hoort net zo makkelijk te zijn als de ingang. Ontwerp v2 op #1511, na blokkade van de bewaker op v1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>