feat(export): laat de voetnootplaatsing meereizen in het geprojecteerde .md #1569
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#1569
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?
Gevonden bij het gelijktrekken van FILE_FORMAT met de code (#1568). Het staat daar nu als open eind in §14.4; dit is de plek om het op te lossen of bewust te laten.
Wat er nu gebeurt
Een document mag de plaatsing van zijn voetnoten vastleggen met
reference-location:in de front matter (§14.9): achteraan het document, of onderaan de bladzijde waar de verwijzing op valt. Bij het exporteren naar een geprojecteerd.mdverdwijnt die keuze. De noten zelf reizen wél mee — dat is gewone tekst in de body — maar de ontvanger krijgt ze op de plek die zíjn lezer kiest.De oorzaak is niet een vergissing in de logica maar de vorm van het exportpad:
writeDocumentExportvertrekt vanuitprojectedDocumentBody(bundle), en dat is de body van het geprojecteerde deck. De front matter van de bron komt daar per constructie niet in voor. De paginaopmaak wordt daarom expliciet weer aangezet (withDocumentPageSetup, sinds #1544); voorreference-location:gebeurt dat niet.Waarom het volgens onze eigen redenering wél mee zou moeten
§14.4 hakt de knoop door met een onderscheid dat ik goed vind: een maat reist mee, een verwijzing niet.
theme:is een verwijzing naar een profiel dat alleen op deze machine bestaat, dus die blijft thuis en wordt vóór de export opgelost.papersize:/geometry:zijn millimeters die overal hetzelfde betekenen, dus die reizen.reference-location:valt aan de kant van de maat. Het is een Pandoc- en Quarto-sleutel die die gereedschappen echt uitvoeren, hij verwijst nergens naar, en hij beschrijft — net als een afloop — een eigenschap van dít stuk drukwerk en niet een voorkeur van de lezer. Wie zijn noten achterin wil, wil ze ook achterin bij de ontvanger.Voorgestelde vorm
In de
md-tak vanwriteDocumentExport, naast de bestaandewithDocumentPageSetup-aanroep, de geldende plaatsing terugschrijven metwithDocumentFrontMatterKey(out, 'reference-location', …). De sleutel staat al inkDocumentOwnedKeys, dus de assert laat het toe en er is geen nieuw vocabulaire nodig.Twee dingen om bij het bouwen te wegen:
documentte schrijven en de standaard stil te laten. Dat scheelt front matter in een bestand dat anders geen front matter had — en §14.9 belooft nu net dat de standaard níets schrijft..md-uitvoer; de LaTeX-uitvoer honoreert de plaatsing al direct.Klaar wanneer
reference-location: documentlevert een geprojecteerd.mdop dat die sleutel draagt, en een document zonder de sleutel levert (bij de gekozen variant hierboven) geen front matter waar het er geen had.document_export_page_size_test.dart, die dezelfde weg voor de voetnootsleutel afloopt.Opgepakt op tak
fix/voetnootplaatsing-reist-mee.De keuze die in de issue open stond — altijd schrijven, of alleen de afwijkende waarde — beslist de code eigenlijk zelf al:
withDocumentFootnotePlacementschrijft niets voorpage, omdat onderaan-de-bladzijde is wat elke lezer zonder aanwijzing al doet. De export volgt diezelfde regel, dus een document zonder noten-achterin krijgt geen front matter waar het er geen had (§14.9).Gebouwd en gemerged in #1581 (
7f3acceb).De export schrijft
reference-location:opnieuw in het geprojecteerde.md, om dezelfde reden als de paginaopmaak: het is een instructie die Pandoc en Quarto zelf uitvoeren, dus een maat en geen verwijzing. De standaard blijft niets schrijven — noten onderaan de bladzijde is wat elke lezer uit zichzelf al doet, dus een document dat niets bijzonders wil wordt nog altijd zonder front matter geëxporteerd.Drie tests, waarvan twee eerst rood tegen de onherstelde code. FILE_FORMAT §14.4 stond op het tegenovergestelde en is omgedraaid, met de correctie op de record; §14.9 noemt het nu ook. Beide talen bij.