Clean Web Clipper Dodaj do Chrome – za darmo

Dla kogo ·

Tabele, które przetrwają drogę do Markdowna

Ogólne konwertery HTML do Markdowna psują się na tabelach, które się liczą: tych z listą, odnośnikiem albo przykładem kodu w komórce. Clean Web Clipper sam serializuje tabelę i spłaszcza zawartość komórki, zamiast gubić wiersz.

Skąd te liczby: pomiar z wersjami silników i datami

Gdzie giną liczby

Tabela jest powodem, dla którego zapisałeś stronę: progi cenowe, limity zapytań, okresy retencji, schemat. Wklejasz wycinek do notatek i widzisz jeden wiersz rozlany na całą stronę, kreski pionowe w złych miejscach i kolumnę, która po cichu zlała się z sąsiednią. Liczby nadal są na ekranie w przeglądarce za tobą, więc błąd łatwo przeoczyć – dopóki karta nie zniknie.

Odwrotna awaria kosztuje to samo popołudnie. Mnóstwo witryn wciąż używa table wyłącznie do układania elementów, a konwerter, który każdą taką tabelę traktuje jak dane, podaje ci dwadzieścia wierszy nawigacji przebranych za zbiór danych. W jednym przypadku czas idzie na przepisywanie liczb, w drugim na usuwanie siatki, a w żadnym na analizę, dla której usiadłeś.

Przepisywanie ma trzeci koszt, który wychodzi dużo później. Liczba wpisana ręcznie do arkusza nie niesie źródła, daty ani możliwości sprawdzenia – po sześciu tygodniach nikt nie powie, czy okres retencji w komórce D14 odczytano ze strony w styczniu czy w marcu, a strona była od tego czasu dwa razy redagowana. Ceny, limity i kwoty zmieniają się bez ogłoszeń. Przechwycona tabela z adresem źródła i zadeklarowaną datą strony nad nią odpowiada na to pytanie – i odpowiada ponownie w następnym kwartale, gdy zapiszesz tę samą stronę i porównasz oba pliki.

Dodaj do Chrome – za darmoZa darmo w całości – bez konta i bez limitu stron.For Chrome on a computer

Co przechodzi w całości

Prawdziwy wynik, bez poprawekstat.gov.pl – klasyfikacja PKD, dział 62
| Symbol | Nazwa grupowania | Uwagi |
| --- | --- | --- |
| 62.01.Z | Działalność związana z oprogramowaniem | bez podklas |
| 62.02.Z | Doradztwo w zakresie informatyki | także audyt i planowanie |
| 62.03.Z | Zarządzanie urządzeniami informatycznymi | `outsourcing` infrastruktury |

Wiersz z listą albo fragmentem kodu w komórce zostaje wierszem,
a nie zwija się do jednej linii.

Ustawienia pod tabele krok po kroku

Dwa ustawienia i jeden nawyk. Nawyk – przewinięcie przed zapisem – odzyskuje więcej wierszy niż jakiekolwiek ustawienie.

  1. Z ikony rozszerzenia otwórz Opcje i wskaż folder, w którym leżą dane robocze – dane/zrodla obok notatnika albo arkusza, który z nich korzysta.
  2. Kliknięcie ikony zostaw na oknie podglądu. Tabela to jedyna rzecz, na którą warto spojrzeć, zanim trafi do folderu – czy kolumny się zgadzają, widać jednym rzutem oka, a w wykazie plików nie widać wcale.
  3. Ustaw wzorzec nazwy na {date}-{domain}-{title}, żeby ta sama strona z cennikiem zapisana w styczniu i w kwietniu była dwoma plikami sortującymi się obok siebie.
  4. Włącz we frontmatterze source i date. Tabela bez adresu, spod którego pochodzi, to zestaw liczb, który ktoś kiedyś będzie musiał wyprowadzić od nowa.
  5. Przed zapisem przewiń do końca tabeli. Wiersze doładowywane przy przewijaniu nie istnieją w DOM, dopóki się nie wczytają, a rozszerzenie czyta DOM w chwili zapisu.
  6. Gdy artykuł wokół jest bez znaczenia, zaznacz tabelę na stronie i zapisz zaznaczenie. Przełącznik u góry okna potwierdza, że patrzysz na zaznaczenie, a nie na całą stronę.
  7. Wpisz do kalendarza cykliczny zapis stron, na których liczby się ruszają: kwot, cen, okresów retencji. Wartość zbioru leży w drugim zapisie, nie w pierwszym.

Ustawienia pod liczby do ponownego użycia

Sens każdej wartości poniżej jest taki, że tabela czytana za pół roku ma nadal mówić, skąd pochodzi i z kiedy jest.

UstawienieWartośćDlaczego właśnie tak
Kliknięcie ikonyokno podgląduPrzesuniętą kolumnę widać od razu na ekranie, a w wykazie plików wcale
Folder docelowykatalog dane/zrodlaZapisy leżą obok notatnika albo arkusza, który z nich korzysta
Wzorzec nazwy{date}-{domain}-{title}Kwartalne zapisy jednej strony sortują się razem i nigdy nie kolidują
Frontmattersource i date włączoneDwie linie, które zamieniają zestaw liczb z powrotem w fakt do zacytowania
ObrazypomijajWykresy i tak przychodzą jako odnośniki do obrazów; rozszerzenie nie odczytuje liczb z obrazka
Zaznaczeniezaznacz tabelę, zapisz zaznaczenieDwanaście ekranów artykułu wokół czterowierszowej tabeli to w folderze z danymi szum
Powtórny zapista sama strona co kwartałSufiks liczbowy zachowuje oba pliki, a porównanie jest analizą
Trudny przypadek: nierówna tabela dwukolumnowa staje się liniami klucz–wartośćstrona z siatką definicji
**Ludność w wieku produkcyjnym**
: Mężczyźni 18–64 lata, kobiety 18–59 lat. Definicja stosowana
  w publikacjach do 2023 r. włącznie.

**Współczynnik obciążenia demograficznego**
: Liczba osób w wieku nieprodukcyjnym na 100 osób w wieku
  produkcyjnym.

**Przyrost naturalny**
: Różnica między liczbą urodzeń żywych a liczbą zgonów.

Źródłowa siatka miała scalone komórki nagłówka i listę zagnieżdżoną
w ostatnim wierszu. Jako tabela Markdown rozpadłaby się; jako pary
klucz–wartość nie ma czego rozbić.

Trzy tabele, trzy wyniki

Tabela cenowa do arkusza porównawczego

Czterech dostawców, cztery strony z cennikami, cztery zapisy. Każda tabela przychodzi jako tabela GFM, z nazwami planów, kwotami i limitami w tych komórkach, w których stały, i z adresem źródła nad nią, więc arkusz porównawczy powstaje bez przepisania ani jednej liczby.

Tu serializator zarabia na swoje miejsce – komórki, które psują ogólne konwertery, to te ze znacznikiem przypisu, listą funkcji w cenie albo przykładem kodu w środku. Na technicznym korpusie piętnastu tabel przetrwało tu dwanaście, wobec siedmiu w każdym porównywanym silniku.

Ta sama strona w odstępie kwartału

Limity zapytań dostawcy zapisałeś w lutym i ponownie w maju. Drugi plik dostał sufiks liczbowy. Porównanie pokazuje, że limit chwilowy w planie startowym spadł o połowę, a okres retencji w najwyższym planie się wydłużył – i żadna z tych zmian nie została nigdzie ogłoszona.

Bez lutowego pliku zmiany nie da się udowodnić, bo strona pokazuje tylko swój obecny stan, a poprzednie liczby nie istnieją nigdzie, gdzie dostawca coś publikuje. Cała metoda zależy od tego, czy pierwszy zapis był na tyle tani, żeby go zrobić, zanim było wiadomo, że będzie ważny.

Siatka, która nie mogła być tabelą

Strona specyfikacji definiuje dwadzieścia nagłówków w dwukolumnowej siatce ze scalonymi komórkami nagłówka i listą zagnieżdżoną w jednym wierszu. Odtworzona jako tabela Markdown rozsypałaby się; zamiast tego przychodzi jako pogrubione linie kluczy z wartościami pod spodem, co jest bezstratne i przy czytaniu, i przy wyszukiwaniu.

To zachowanie jest celowe, a nie awarią awaryjnej ścieżki. Nierówne tabele dwukolumnowe dużo częściej są listami definicji przebranymi za siatkę niż danymi, a rozsypaną tabelę z kreskami trudniej naprawić niż przeczytać listę.

Wobec zwykłych sposobów przenoszenia tabeli

Każdy z tych sposobów zdejmuje liczby ze strony. Różnią się tym, co przychodzi razem z liczbami, i tym, co trzeba zrobić potem.

Jak się to robi dziśCo z tego wychodziIle kosztuje
Przepisanie do arkuszaDokładnie te komórki, których potrzebujeszBłędy przepisywania i brak zapisu źródła oraz daty
Kopiowanie i wklejenie do arkuszaCzęsto siatka, czasemZawodzi na komórkach z listami albo kodem; siatki układu przychodzą jako dane
Zrzut ekranu tabeliTabela tak, jak była wyświetlonaNic do obliczeń, nic do przeszukania, brak linii ze źródłem
Eksport CSV udostępniony przez witrynęCzyste dane, jeśli eksport istniejeWiększość stron go nie ma, a eksport czasem różni się od tego, co jest wyświetlane
Ogólny konwerter HTML do MarkdownaMarkdown, szybkoKomórka z listą albo blokiem kodu to miejsce, w którym ogólne konwertery się psują
Clean Web ClipperTabela GFM ze źródłem i datą nad niąBez scalonych komórek, bez eksportu CSV i bez odczytywania liczb z obrazu wykresu

Kiedy tabela nie wychodzi dobrze

Dlaczego zniknęły scalone komórki?

Markdown nie ma scalonych komórek, więc colspan i rowspan są spłaszczane – zawartość zostaje zachowana, a wizualne scalenie nie, bo format nie potrafi go wyrazić. Gdy scalony nagłówek obejmował trzy kolumny, tekst ląduje w pierwszej z nich. To właściwość formatu docelowego, a nie konwersji: żadna tabela Markdown nigdzie tego nie wyraża.

Dlaczego brakuje połowy wierszy?

Rozszerzenie czyta DOM w chwili zapisu, więc wiersze, które strona doładowuje przy przewijaniu (albo podaje przez przycisk „pokaż więcej”, albo dzieli na strony), jeszcze nie istnieją, jeśli ich nie wywołałeś. Przewiń do końca, rozwiń to, co się rozwija, i dopiero zapisz. Tabelę podzieloną na strony zapisz stroną po stronie – części da się potem połączyć, a nic innego nie odzyska wierszy, których przeglądarka nigdy nie dostała.

Dlaczego zamiast danych dostałem siatkę nawigacji?

To tabela układu: siatka służąca wyłącznie do rozmieszczenia elementów, której wiele starszych witryn wciąż używa do menu i nagłówków. Takie tabele są rozpakowywane, a nie konwertowane, więc zawartość przechodzi bez siatki. Jeśli siatka nawigacji jednak trafiła do notatki jako tabela, to dlatego, że strona oznaczyła ją jako tabelę danych – znaczniki mówiły „dane”, a rozszerzenie im uwierzyło.

Dlaczego tabela wyszła jako linie klucz–wartość?

To ścieżka dla nierównych tabel dwukolumnowych. Dwukolumnowa tabela z nierównymi wierszami to zwykle lista definicji narysowana jako siatka, a odtworzenie jej jako tabeli z kreskami daje rozsypaną siatkę zamiast czytelnej. Zawartość jest kompletna: pogrubiony klucz, wartość pod nim, w pierwotnej kolejności. Jeśli potrzebujesz prawdziwej tabeli, pary da się mechanicznie zamienić z powrotem.

Gdzie kończą się możliwości formatu

Markdown nie ma scalonych komórek, więc colspan i rowspan są spłaszczane – zawartość zostaje, wizualne scalenie nie, bo format nie umie go wyrazić. Tabela zagnieżdżona w komórce jest trudna dla każdego narzędzia i to nie jest wyjątkiem. Nie odczytuje liczb z obrazu wykresu i nie eksportuje do CSV ani XLSX: wynikiem jest Markdown. I konwertuje jedną stronę naraz – tę, na której stoisz.

Dodaj do Chrome – za darmoZa darmo w całości – bez konta i bez limitu stron.For Chrome on a computer

Pytania

Co dzieje się z tabelą użytą wyłącznie do układu?
Jest rozpakowywana. Odtworzenie siatki służącej do rozmieszczenia elementów jako tabeli Markdown daje szum, więc zawartość zostaje, a siatka nie.
Czy scalone komórki są obsługiwane?
Markdown nie ma scalonych komórek, więc są spłaszczane. Zawartość zostaje zachowana; wizualne scalenie nie, bo format nie potrafi go wyrazić.
Czy mogę zapisać samą tabelę?
Tak: zaznacz ją na stronie i zapisz zaznaczenie. Przełącznik u góry okna pokazuje, czy patrzysz na zaznaczenie, czy na całą stronę.
Czy dostanę z tego CSV?
Nie. Wynikiem jest Markdown. Tabela GFM wkleja się do większości arkuszy i notatników, ale eksportu do CSV ani XLSX nie ma.
Co z tabelami, które doładowują wiersze przy przewijaniu?
Rozszerzenie czyta DOM w chwili zapisu, więc przechwycone zostają tylko wiersze, które strona faktycznie wyrenderowała. Najpierw przewiń, żeby wczytać resztę.
Czy odczytuje liczby z wykresu?
Nie. Wykres to obraz albo canvas, a rozszerzenie nie przetwarza obrazów w żaden sposób. Gdy strona publikuje dane źródłowe jako tabelę pod wykresem – robi tak wiele urzędów statystycznych – ta tabela zapisuje się normalnie.
Czy plik zapisuje, kiedy liczby obowiązywały?
Zapisuje to, co zadeklarowała strona: data publikacji trafia do frontmattera, a dzień przechwycenia może trafić do nazwy pliku przez {date}. Gdy strona nie deklaruje daty, pole zostaje puste, a nie wypełnione – to przynajmniej uczciwa luka, a nie błędna liczba.
Czy zapisze tabelę z osadzonego pulpitu?
Nie. Treść wyświetlana w osadzonej przeglądarce albo widżecie pulpitu należy do osobnego dokumentu umieszczonego w stronie, a zapis strony wokół niego nie sięga do środka. Jeśli narzędzie ma własny eksport albo widok pełnej strony, użyj go.
Czy formatowanie kolumn zostaje zachowane?
Kolejność kolumn, wiersz nagłówka i zawartość komórek – tak. Kolor, cieniowanie, szerokość komórek i grubość czcionki – nie, bo tabela Markdown nie umie ich przenieść. Komórka pogrubiona w źródle zachowuje pogrubienie; komórka tylko pokolorowana koloru nie zachowuje.
Co, jeśli tabela jest zagnieżdżona w innej tabeli?
To trudny przypadek dla każdego narzędzia i to nie jest wyjątkiem – zawartość tabeli wewnętrznej jest spłaszczana do komórki, która ją zawierała. Zostaje zachowana, ale jako tekst, a nie siatka, a źle zagnieżdżony układ warto sprawdzić wzrokiem, zanim się na nim oprzesz.