För vem ·
Tabeller som överlever överföringen till Markdown
Generiska omvandlare från HTML till Markdown går sönder på de tabeller som betyder något: de med en lista, en länk eller ett kodexempel inne i en cell. Clean Web Clipper serialiserar tabellen själv och plattar ut cellinnehållet i stället för att tappa raden.
Var siffrorna kommer ifrån: mätningen, med motorernas versioner och datum
Där siffrorna går förlorade
Tabellen är skälet till att du sparade sidan: prisnivåer, anropsgränser, lagringstider, ett schema. Du klistrar in klippet i dina anteckningar och hittar en rad utspridd över en hel sida, rörstreck på fel ställen och en kolumn som i tysthet har smält ihop med sin granne. Siffrorna står fortfarande kvar i webbläsaren bakom dig, så felet är lätt att missa – tills fliken är stängd.
Det motsatta felet kostar samma eftermiddag. Många sajter använder fortfarande en table bara för att placera ut saker, och en omvandlare som behandlar varje sådan som data ger dig tjugo rader navigering utklädda till dataset. Det ena slutar med att du skriver av siffror, det andra med att du raderar ett rutnät, och inget av dem är analysen du satte dig för att göra.
Att skriva av har en tredje kostnad som visar sig mycket senare. En siffra som skrivits in för hand i ett kalkylblad har ingen källa, inget datum och inget sätt att kontrolleras – sex veckor senare kan ingen säga om lagringstiden i cell D14 lästes av sidan i januari eller i mars, och sidan har redigerats två gånger sedan dess. Priser, anropsgränser och kvoter ändras utan tillkännagivande. En fångad tabell med källadressen och sidans angivna datum ovanför besvarar den frågan, och besvarar den igen nästa kvartal när du fångar samma sida och jämför de två.
Vad som kommer över helt
- En GFM-tabellserialisering skriven för just det här, inte en generisk omvandlarplugin som skruvats fast.
- 12 tabeller av 15 behållna på det tekniska korpuset, mot 7 för var och en av de jämförda motorerna.
- Ojämna tvåkolumnstabeller blir rader med fetstilt nyckel och värde i stället för ett trasigt rutnät.
- Layouttabeller packas upp – rutnät som bara används för placering lämnar ifrån sig innehållet utan rutnätet.
- Kod i en cell förblir kod, med språkmärkningen på kodblocket.
- Markera en tabell på sidan och klipp markeringen, när artikeln runt omkring inte behövs.
- Källadressen och sidans angivna datum står ovanför tabellen, så en uppsättning siffror bär datumet den gällde, inte datumet du råkade arkivera den.
- En andra kopia av samma sida får ett siffersuffix, skrivs aldrig över – det är det som alls gör en kvartalsvis jämförelse möjlig.
| Län | Folkmängd 31 dec | Förändring | Källa | | --- | --- | --- | --- | | Stockholms län | 2 471 033 | +0,7 % | BE0101 | | Västra Götalands län | 1 785 550 | +0,6 % | BE0101 | | Skåne län | 1 425 383 | +0,8 % | BE0101 | | Gotlands län | 61 173 | | BE0101 | **Anmärkning**: preliminära uppgifter; serien reviderades senast 2022.
Så ställer du in det för tabeller
Två inställningar och en vana. Vanan – att skrolla innan du klipper – räddar fler rader än någon inställning kan.
- Öppna Inställningar från tilläggets ikon och peka målet på mappen där arbetsdatan ligger –
data/kallorbredvid den notebook eller det kalkylblad som använder den. - Låt klicket på ikonen öppna förhandsvisningen. En tabell är det enda som är värt att titta på innan den arkiveras – om kolumnerna står rätt syns med en blick och syns inte alls i en fillista.
- Sätt filnamnsmallen till
{date}-{domain}-{title}, så att samma prissida fångad i januari och i april blir två filer som sorteras bredvid varandra. - Slå på
sourceochdatei frontmatter. En tabell utan adressen den kom från är en uppsättning siffror som någon förr eller senare måste ta fram på nytt. - Skrolla till tabellens slut innan du klipper. Rader som laddas medan du skrollar finns inte i DOM förrän de har laddats, och tillägget läser DOM i det ögonblick du klipper.
- När artikeln runt omkring är ointressant markerar du tabellen på sidan och klipper markeringen. Växeln överst i fönstret bekräftar att du tittar på markeringen och inte på hela sidan.
- Lägg in en återkommande fångst i kalendern för sidorna vars siffror rör sig: kvoter, priser, lagringstider. Värdet i samlingen ligger i den andra kopian, inte den första.
Inställningar för siffror du ska återanvända
Poängen med varje värde nedan är att en tabell som läses om ett halvår fortfarande ska säga var den kom ifrån och när.
| Inställning | Värde | Varför just det här |
|---|---|---|
| Klick på ikonen | Förhandsvisning | En förskjuten kolumn syns direkt i fönstret och syns inte alls i en fillista |
| Mål | Mappen data/kallor | Håller kopiorna bredvid den notebook eller det kalkylblad som använder dem |
| Filnamnsmall | {date}-{domain}-{title} | Kvartalsvisa kopior av samma sida sorteras ihop och krockar aldrig |
| Frontmatter | source och date på | De två raderna som gör en uppsättning siffror till ett faktum som går att hänvisa till igen |
| Bilder | Hoppa över | Diagram kommer som bildlänkar i vilket fall; tillägget läser inte siffror ur en bild |
| Markering | Markera tabellen, klipp markeringen | En artikel på tolv skärmar runt en tabell på fyra rader är brus i en datamapp |
| Upprepad fångst | Klipp samma sida varje kvartal | Siffersuffixet behåller båda, och jämförelsen är analysen |
**Content-Type** : Resursens medietyp. Krävs i varje förfrågan som har en kropp. **Cache-Control** : Direktiv för cachning i både förfrågningar och svar. **Retry-After** : Antingen en fördröjning i sekunder eller ett HTTP-datum då ett nytt försök får göras. Källans rutnät hade sammanslagna rubrikceller och en nästlad lista på sista raden. Återskapat som Markdown-tabell hade det gått sönder; som par gör det inte det.
Tre tabeller, tre utfall
En pristabell in i ett jämförelseark
Fyra leverantörer, fyra prissidor, fyra kopior. Varje tabell kommer över som en GFM-tabell med plannamn, belopp och gränser i de celler där de stod och källadressen ovanför, så jämförelsearket byggs utan att en enda siffra skrivs av.
Det är här serialiseringen gör skäl för sin plats – cellerna som får generiska omvandlare att gå sönder är de med ett fotnotstecken, en lista över ingående funktioner eller ett kodexempel inuti. På det tekniska korpuset med femton tabeller klarade sig tolv här, mot sju för var och en av de jämförda motorerna.
Samma sida, ett kvartal senare
Du fångade en leverantörs anropsgränser i februari och igen i maj. Den andra filen fick ett siffersuffix. En jämförelse visar att den tillfälliga toppkvoten halverats på grundplanen och att lagringstiden på den dyraste planen förlängts – inget av det tillkännagavs någonstans.
Utan februarifilen går ändringen inte att belägga, eftersom sidan bara visar sitt nuvarande skick och de tidigare siffrorna inte finns någonstans som leverantören publicerar. Hela metoden bygger på att den första kopian var billig nog att ta innan du visste att den skulle spela roll.
Ett rutnät som inte kunde vara en tabell
En specifikationssida definierar tjugo huvuden i ett tvåkolumnsrutnät med sammanslagna rubrikceller och en nästlad lista på en rad. Återskapat som Markdown-tabell hade det fallit ihop; i stället kommer det över som fetstilta nyckelrader med värdena under, vilket är förlustfritt både för läsning och för sökning.
Beteendet är medvetet och ingen reservlösning efter ett misslyckande. Ojämna tvåkolumnstabeller är betydligt oftare definitionslistor i rutnätsform än data, och en trasig tabell med rörstreck är svårare att laga än en lista är att läsa.
Mot de vanliga sätten att flytta en tabell
Vart och ett av dem får ut siffror från en sida. De skiljer sig i vad som följer med siffrorna och i vad du måste göra efteråt.
| Så görs det i dag | Vad du får | Vad det kostar |
|---|---|---|
| Skriv av till ett kalkylblad | Exakt de celler du behöver | Avskrivningsfel, och ingen uppgift om källa eller datum |
| Kopiera och klistra in i ett kalkylblad | Ofta rutnätet, ibland | Går sönder på celler med listor eller kod; layoutrutnät kommer över som data |
| Skärmbild av tabellen | Tabellen som den visades | Inget att räkna på, inget att söka i, ingen källrad |
| Sajtens egen CSV-export | Ren data, när den finns | De flesta sidor har ingen, och exporten skiljer sig ibland från det som visas |
| En generisk omvandlare från HTML till Markdown | Markdown, snabbt | En cell med en lista eller ett kodblock är där generiska omvandlare går sönder |
| Clean Web Clipper | En GFM-tabell med källa och datum ovanför | Inga sammanslagna celler, ingen CSV-export och inga siffror lästa ur en diagrambild |
När en tabell inte blir rätt
Varför är de sammanslagna cellerna borta?
Markdown har inga sammanslagna celler, så colspan och rowspan plattas ut – innehållet bevaras och den visuella sammanslagningen inte, eftersom formatet inte kan uttrycka den. Där en sammanslagen rubrik spände över tre kolumner hamnar texten i den första av dem. Det är en egenskap hos målformatet snarare än hos omvandlingen, och ingen Markdown-tabell någonstans kan uttrycka det.
Varför saknas hälften av raderna?
Tillägget läser DOM i samma ögonblick som du klipper, så rader som sidan laddar medan du skrollar (eller visar via en ”visa fler”-knapp, eller delar upp på flera sidor) finns inte än om du inte har fått dem att laddas. Skrolla till slutet, fäll ut det som går att fälla ut och klipp sedan. En tabell uppdelad på flera sidor klipper du sida för sida – delarna kan fogas ihop efteråt, och ingenting annat kan få tillbaka rader som webbläsaren aldrig tog emot.
Varför fick jag ett rutnät med navigering i stället för data?
Det är en layouttabell: ett rutnät som bara används för placering, vilket många äldre sajter fortfarande använder för menyer och sidhuvuden. Sådana packas upp i stället för att omvandlas, så innehållet kommer fram utan rutnätet. Nådde ett navigeringsrutnät ändå anteckningen som tabell beror det på att sidan märkte upp det som datatabell – uppmärkningen sa ”data”, och tillägget trodde på den.
Varför blev tabellen rader med nyckel och värde?
Det är vägen för ojämna tvåkolumnstabeller. En tvåkolumnstabell med ojämna rader är oftast en definitionslista ritad som rutnät, och att återskapa den som tabell med rörstreck ger ett trasigt rutnät snarare än ett läsbart. Innehållet är komplett: fetstilt nyckel, värdet under, i ursprunglig ordning. Behöver du den som riktig tabell går paren att omvandla tillbaka mekaniskt.
Där formatet tar slut
Markdown har inga sammanslagna celler, så colspan och rowspan plattas ut – innehållet bevaras, den visuella sammanslagningen inte, eftersom formatet inte kan uttrycka den. En tabell nästlad i en cell är svår för alla verktyg, och det här är inget undantag. Det läser inte siffror ur en diagrambild, och det exporterar ingen CSV eller XLSX – utdatan är Markdown. Och det omvandlar en sida i taget, den du står på.
Frågor
Vad händer med en tabell som bara används för layout?
Stöds sammanslagna celler?
Kan jag klippa bara tabellen?
Får jag ut CSV?
Hur går det med tabeller som laddar fler rader när man skrollar?
Läser det siffror ur ett diagram?
Visar filen när siffrorna gällde?
{date}. Där en sida inte anger något datum lämnas fältet tomt i stället för att fyllas i, vilket åtminstone är en ärlig lucka och inte en felaktig siffra.