Voor wie
Tabellen die de overtocht overleven
Generieke omzetters van HTML naar Markdown lopen stuk op precies de tabellen waar het om gaat. Clean Clipper schrijft de tabel zelf en slaat de celinhoud plat in plaats van de rij te laten vallen: op een corpus van vijftien tabellen bleven er twaalf heel, tegen zeven bij elk van de vergeleken engines.
Waar cijfers onderweg sneuvelen
De tabellen die je nodig hebt zijn zelden simpel. Er zit een voetnootmarkering in een kop, een link in een cel, een lege cel waar een waarde ontbreekt of een lijstje binnen één veld. Precies daar geven generieke omzetters het op: de rij schuift een kolom op, of hij verdwijnt zonder melding. Dat je een rij mist, merk je pas als je optelt en het totaal niet klopt.
Daarbij komt dat veel sites tabellen gebruiken om te positioneren en niet om data te tonen. Zo’n raster als Markdown-tabel nabouwen levert een scherm vol pijpsymbolen op waarin je de echte cijfers niet meer terugvindt. Je zit dan met twee soorten rommel: gebroken datatabellen en nagebouwde opmaakrasters.
Het derde probleem merk je pas bij navraag. Veel publicerende partijen werken hun cijfers bij op dezelfde pagina: een voorlopig cijfer wordt definitief, een reeks wordt herzien, en het getal dat jij drie maanden geleden in een presentatie zette staat er niet meer. Het adres werkt nog, de tabel ziet er hetzelfde uit, alleen de waarde is anders. Zonder een kopie van de tabel zoals hij toen was, kun je niet laten zien dat je destijds het juiste cijfer had.
Wat er met een tabel gebeurt
- Eigen GFM-tabelserialisatie in plaats van een generieke plug-in
- Twaalf van de vijftien tabellen behouden op het technische corpus, tegen zeven bij elke vergeleken engine
- Een cel met een lijst, een link of een codevoorbeeld wordt platgeslagen, niet weggelaten
- Rafelige tabellen van twee kolommen worden
Sleutel: waarde-regels in plaats van een kapot raster - Opmaaktabellen – rasters die er alleen voor de positionering staan – worden uitgepakt, niet nagebouwd
- Getallen, drempels en eenheden blijven staan waar je ze kunt lezen
- Voetnootmarkeringen bij een cel blijven staan, met hun definities achterin – dat is vaak het verschil tussen voorlopig en definitief
- Twee clips van dezelfde tabel zijn te vergelijken met een diff, zodat een herziene reeks zichtbaar wordt in plaats van stil te verschuiven
| Regio | Bevolking, 1 jan. | Groei (%) | Bron | | --- | --- | --- | --- | | Noord-Holland | 2 952 622 | 1,1 | StatLine | | Zuid-Holland | 3 804 906 | 0,9 | StatLine | | Flevoland | 444 701 | 1,7 | | **Toelichting**: voorlopige cijfers; de reeks is in 2022 herzien.
Inrichten voor cijferwerk
Het gaat hier om twee dingen: alleen de tabel ophalen in plaats van de hele pagina, en kunnen zien wanneer je hem ophaalde. De rest is standaard.
- Open Opties met een rechtermuisklik op het icoon en zet de bestemming op een map naast de analyse waar de cijfers in terechtkomen.
- Zet het sjabloon voor de bestandsnaam op
{date}-{domain}-{title}. Bij cijfers die worden herzien is de dag van ophalen het belangrijkste stuk metadata dat je hebt. - Zet afbeeldingen op overslaan. Grafieken komen toch niet als cijfers mee, en de linkregels zitten tussen de tabellen in de weg.
- Laat de klik op het icoon het voorbeeldvenster openen en wen aan de leesweergave: daar zie je in één oogopslag of een rij een kolom is opgeschoven, en dat is precies het soort fout dat je in een spreadsheet niet meer opmerkt.
- Oefen met selecteren. Markeer op de pagina alleen de tabel – inclusief de kopregel – en haal de selectie op. De schakelaar boven in het venster laat zien of je naar de selectie kijkt of naar de hele pagina.
- Klap voor het ophalen alles open wat de tabel beïnvloedt: filters, “toon alle rijen”, en de toelichting onder de tabel. Wat niet op de pagina staat op het moment van ophalen, staat ook niet in de clip.
Instellingen voor analisten
Deze waarden gaan uit van tabellen die je overneemt en later moet kunnen verantwoorden, niet van artikelen die je leest.
| Instelling | Waarde | Waarom juist deze |
|---|---|---|
| Selectie | Alleen de tabel selecteren | De omliggende tekst voegt niets toe en maakt het terugvinden van de rijen lastiger |
| Klik op het icoon | Voorbeeldvenster tonen | Een verschoven rij zie je in de leesweergave, en in een spreadsheet niet meer |
| Bestandsnaam | `{date}-{domain}-{title}` | Bij cijfers die worden herzien is de datum van ophalen de belangrijkste metadata |
| Afbeeldingen | Overslaan | Grafieken komen niet als cijfers mee; hun linkregels zitten tussen de tabellen in de weg |
| Frontmatter | `source` en `date` aan | De vindplaats en de publicatiedatum zijn wat je bij een cijfer moet kunnen noemen |
| Bestemming | De map van de analyse | De onderbouwing hoort naast het model te staan, niet in een aparte verzameling |
| Regel per site | Statistiekbron → eigen submap | Reeksen van één bron vergelijk je onderling; door elkaar staan ze in de weg |
**Peildatum** : De datum waarop de waarneming betrekking heeft. Verplicht bij elke reeks. **Voorlopig cijfer** : Nog niet definitief vastgesteld; kan bij een volgende publicatie wijzigen. **Onbekend** : De waarde is niet waargenomen. Wordt niet als nul gelezen. Het bronraster had een samengevoegde kopcel en in de laatste rij een lijstje. Als Markdown-tabel nagebouwd was die rij scheefgelopen; als paren niet.
Drie keer met cijfers
Een regiotabel die heel moet blijven
Je hebt een tabel nodig met bevolkingscijfers per regio, inclusief de kolom met de bron en één lege cel waar een waarde ontbreekt. Je selecteert de tabel op de pagina en haalt de selectie op. In de clip staat een GFM-tabel met dezelfde kolommen, met de lege cel als lege cel en de toelichting eronder.
Dat die lege cel leeg blijft is het punt. Een omzetter die rijen opschuift maakt van een ontbrekende waarde stilzwijgend het cijfer van de buurkolom, en dat merk je pas als een totaal niet klopt. Op het testcorpus van vijftien tabellen bleven er twaalf heel, tegen zeven bij elk van de vergeleken engines.
Twee publicatierondes naast elkaar
In het voorjaar haal je een reeks op, in het najaar dezelfde. De tweede clip komt genummerd naast de eerste te staan. Een diff van de twee tekstbestanden laat zien welke waarden zijn herzien en welke voetnootmarkering erbij is gekomen.
Zonder die twee bestanden zou je alleen de huidige pagina hebben, en die vertelt niet wat er eerder stond. Met beide kun je in een voetnoot van je eigen rapport precies zeggen welke versie van de reeks je hebt gebruikt en wanneer.
Een definitieraster dat geen tabel is
Een specificatiepagina zet begrippen en definities in een raster van twee kolommen met een samengevoegde kopcel en in de laatste rij een lijstje. Als Markdown-tabel nagebouwd zou die rij scheeflopen. In plaats daarvan komt het als Sleutel: waarde-regels binnen, en dan klopt elke regel.
Dat is een bewuste afweging en geen truc: de visuele vorm gaat verloren, de inhoud niet. Voor een raster dat je toch niet gaat optellen, is leesbare tekst bruikbaarder dan een kapotte tabel.
Tegenover de gebruikelijke manieren
Voor een tabel van een webpagina naar je analyse bestaan vijf routes. Ze werken alle vijf, tot ze dat niet doen – en dat is precies waar de derde kolom over gaat.
| Hoe het nu gaat | Wat je krijgt | Wat het kost |
|---|---|---|
| Rechtstreeks in een spreadsheet plakken | De cijfers, soms in de goede kolommen | Een cel met een lijst of een link schuift de rij op, en dat zie je pas bij het optellen |
| Een schermafbeelding van de tabel | Wat er stond, zoals het eruitzag | Niet doorzoekbaar, niet te vergelijken, niet over te nemen |
| De CSV-download als die er is | De cijfers zoals de bron ze bedoelt | Bestaat lang niet altijd, en dekt vaak niet dezelfde selectie als de tabel op het scherm |
| De cijfers overtypen | Precies wat je nodig had | Elke honderd cellen kost een fout, en die vind je niet terug |
| Clean Clipper | Een GFM-tabel met de cellen zoals ze stonden | Geen CSV en geen XLSX; samengevoegde cellen worden platgeslagen |
Als de tabel niet klopt
Een rij is een kolom opgeschoven
Dat komt bijna altijd door samengevoegde cellen. Markdown kent geen samenvoeging, dus die worden platgeslagen, en bij een kopcel die twee kolommen besloeg loopt de uitlijning daarna anders dan op het scherm. De inhoud is er wel. Controleer zulke tabellen in de leesweergave voordat je ze overneemt, en gebruik voor echt ingewikkelde rasters de CSV-download van de bron als die bestaat.
De tabel staat helemaal niet in de clip
Dan stond hij op het moment van ophalen niet in de pagina. Tabellen die pas verschijnen nadat je een filter kiest, een jaartal aanklikt of “toon meer rijen” indrukt, worden door een script bijgeladen; wat niet is gerenderd, kan niet worden omgezet. Stel de tabel eerst in zoals je hem wilt hebben en haal daarna op.
De duizendtalscheiding en de eenheden zijn veranderd
Dat kan niet: celinhoud wordt letterlijk overgenomen. Punten, komma’s, spaties als scheidingsteken, eenheden en voetnootmarkeringen blijven precies staan zoals de pagina ze zette. Er wordt niets omgerekend en niets geherformatteerd – juist omdat een omgerekend getal er goed uitziet en fout kan zijn.
Ik wilde een tabel, maar krijg regels met een dubbele punt
Dan was het bronraster te rafelig om als tabel te overleven: twee kolommen, een samengevoegde kopcel, of een lijst binnen een cel. Zo’n raster wordt bewust omgezet naar Sleutel: waarde-regels. Een nagebouwde tabel had er hetzelfde uitgezien en op één rij niet geklopt, en dat is de gevaarlijkere uitkomst.
Wat het niet doet
Er komt geen CSV of XLSX uit: de uitvoer is Markdown, en de omzetting naar een rekenblad doe je zelf. Samengevoegde cellen worden platgeslagen, want Markdown kan ze niet uitdrukken. Tabellen die pas na een klik of een filter worden geladen, komen alleen mee als ze op het moment van ophalen op de pagina staan. En diagrammen blijven afbeeldingslinks – de cijfers erachter zitten niet in de clip.
Vragen
Wat gebeurt er met een tabel die puur voor de opmaak wordt gebruikt?
Worden samengevoegde cellen ondersteund?
Kan ik alleen de tabel ophalen?
Krijg ik er CSV uit?
Blijven getalnotatie en eenheden staan zoals op de pagina?
Hoeveel tabellen overleven het in de praktijk?
Komen de voetnoten bij een tabel mee?
Kan ik een tabel ophalen die pas na een filter verschijnt?
Kan ik twee versies van dezelfde reeks vergelijken?
Hoe krijg ik het in een spreadsheet?
| als scheidingsteken. De extensie levert geen CSV; wat ze levert is een tabel waarvan de kolommen kloppen.