Een run van het multi-bronnenonderzoeksjabloon produceerde een goed rapport over investeringsinstrumenten, en drukte het vervolgens slecht af. Vijfennegentig markeringen in de vorm [^1] stonden midden in de tekst, en negen regels in de vorm [^1]: stapelden zich eronder op. Zowel op het web als op de telefoon.
De oorzaak is dat voetnoten geen onderdeel zijn van markdown. Het is een uitbreiding, en geen van de twee markdown-renderers die we uitleveren — een op het web, een andere op mobiel — implementeert dit. We vroegen het model precies om deze vorm, en gaven die vervolgens weer als letterlijke tekst.
Één herschrijver, twee engines
In plaats van beide renderers dezelfde uitbreiding te leren, worden de markeringen herschreven voordat een van beide ze ziet, naar een eenvoudige link die beide al identiek weergeven. De definities worden eruit gehaald en apart teruggegeven, en wat erna volgde blijft staan als het staartje van het document. De vierkante haken blijven in de linktekst, zodat gestapelde citaten worden gelezen als [1][2], niet als 12.
Op het web wordt het citaat als superscript getekend, worden de definities weergegeven als een lijst met echte ankers, scrolt klikken op een van hen ernaartoe en flitst de regel even, en springt het nummer in de lijst terug naar de eerste plek waar het geciteerd werd. Zweven toont de definitie zonder te verplaatsen. Op de telefoon worden dezelfde markeringen in de accentkleur getekend, en scrolt tikken op een ervan het paneel naar de bijbehorende regel. Links die geen citaten zijn blijven zoals voorheen openen in een browser.
De bronkaarten onder een rapport zijn nooit geraakt — die komen ergens anders vandaan en waren altijd al goed.
En in de download
Een rapport dat je downloadt als .docx, .pdf of .md ging door een andere converter, die de ruwe markeringen rechtstreeks in het document afdrukte. Een documentspecificatie kent geen superscript, dus een citaat wordt afgedrukt als [3], en elke definitie opent zijn eigen regel beginnend met [3]. Ingesprongen vervolgregels sluiten aan bij hun definitie. De nummers in het bestand zijn de nummers op het scherm.
De eerste poging was fout op een manier waar we al een beveiliging voor hadden
De eerste versie maakte van de voetnootnummers gewone fragmentlinks — href="#fn-3". Onder de <base href="/"> die een single-page-applicatie nodig heeft, wordt een kaal fragment opgelost ten opzichte van de site-root, dus wijst de link naar de startpagina. De klik-handler annuleerde de navigatie, dus het werkte — en zou blijven werken tot iemand de handler aanraakte.
Een controle die we al precies voor dit patroon hadden, sloeg rood uit bij de lokale run vóór de push. De nummers zijn nu knoppen; ze scrollen, verplaatsen de focus, en respecteren de voorkeur voor verminderde beweging van de lezer.