Przejdź do treści
Convertube

Pliki Markdown: zwykły tekst z konwencjami, a konwencji jest więcej niż jedna

Czym jest plik .md, czemu żadne dwa renderery się co do niego nie zgadzają i jak nagłówki i listy powstają z PDF, który ich nie zapisał. Konwertuj za darmo.

W skrócie

Typ
Dokumenty
Rozszerzenia
.md, .markdown
Typ MIME
text/markdown
Znany też jako
MD

Plik .md to plik tekstowy. Nie ma kontenera, kompresji ani niczego binarnego — otwórz go w Notatniku, a zobaczysz dokładnie to, co zawiera. Formatowanie to konwencja, a nie znaczniki: # na początku linii oznacza nagłówek, myślnik oznacza element listy, a renderer, który zna tę konwencję, zamienia je w HTML. To cała idea i dlatego format przetrwał każdy edytor tekstu sformatowanego swojego pokolenia: plik jest czytelny, zanim cokolwiek go wyrenderuje, i będzie czytelny, gdy program, w którym go napisano, dawno zniknie.

Czytaj dalej

Komplikacja polega na tym, że nie ma jednego Markdownu. Oryginalna implementacja z 2004 roku zostawiła wiele przypadków niezdefiniowanych, więc każdy renderer rozstrzygnął je po swojemu; CommonMark istnieje po to, żeby te niejednoznaczności ustalić, a GitHub Flavored Markdown dokłada do niego tabele, listy zadań i przekreślenie. Sytuację uznano formalnie: gdy w marcu 2016 roku zarejestrowano text/markdown jako typ mediów w RFC 7763, rejestracja zawierała parametr variant, właśnie dlatego, że stwierdzenie, iż plik jest Markdownem, nie mówi, którym. Ta strona wytwarza text/markdown w UTF-8 i używa tylko konstrukcji, co do których zgadzają się wszystkie dialekty — nagłówków z krzyżykiem, akapitów oddzielonych pustą linią, punktorów z myślnikiem i linii poziomych.

Konwersja PDF na Markdown oznacza wytworzenie struktury, której PDF nigdy nie miał. PDF zapisuje rozmiary czcionki, a nie nagłówki, więc rozmiary na stronie są szeregowane, a sześć największych staje się sześcioma poziomami nagłówków; linia, która jest po prostu większa od tekstu głównego, staje się nagłówkiem, niezależnie od tego, czy autor tak o niej myślał. Z listami jest gorzej: PDF nie ma żadnej konstrukcji listy, a widoczny punktor to dosłownie znak w tekście, więc lista przetrwa tylko wtedy, gdy ten znak zostanie rozpoznany i zamieniony na myślnik. Elementy numerowane nie potrzebują takiej pomocy — „1. ” i „1) ” to już Markdown i już oznaczają listę.

Dwa szczegóły warto znać, bo zmieniają sam tekst. Linia zakończona łącznikiem jest traktowana jako słowo przerwane na końcu linii i łączona z powrotem bez niego; a kolejne linie chińskiego lub japońskiego tekstu są łączone bez spacji, bo te pisma jej tam nie stawiają. Strony są oddzielone linią poziomą, więc trzynastostronicowy dokument przychodzi z dwunastoma takimi liniami. Jeśli PDF jest skanem bez warstwy tekstowej, ten sam model rozpoznawania, którego używa PDF na Word, najpierw odczytuje znaki z obrazów stron, na Twoim komputerze.

Konwertuj inne formaty na Markdown

Markdown — FAQ

Czy plik .md to po prostu plik tekstowy?

Tak. Bez kontenera, kompresji i niczego binarnego. Otworzy go każdy edytor tekstu, a znaczniki — #, -, ** — to zwykłe znaki, które możesz czytać takie, jakie są.

Jaki wariant Markdownu dostanę?

Tylko części, co do których zgadzają się wszystkie dialekty: nagłówki z krzyżykiem, akapity oddzielone pustymi liniami, punktory z myślnikiem i linie poziome. Nic tutaj nie zależy od rozszerzeń GitHub czy CommonMark, więc renderuje się tak samo, gdziekolwiek go wkleisz.

Dlaczego mój dokument przecinają linie z kresek?

To podziały stron. Każda z nich to linia pozioma oznaczająca, gdzie skończyła się jedna strona PDF, a zaczęła następna, więc trzynastostronicowy dokument wraca z dwunastoma takimi liniami.

Nagłówek wyszedł na złym poziomie. Dlaczego?

Poziomy są szeregowane według rozmiaru czcionki, bo PDF przechowuje rozmiary, a nie nagłówki. Gdy dokument używa rozmiaru do wyróżnienia, a nie hierarchii — cytatu wyróżnionego, dużej pierwszej linii — szeregowanie idzie za rozmiarem i myli poziom.

Czy tabele przetrwają?

Tabele narysowane liniami tak — wychodzą jako tabele Markdown, z pierwszym wierszem jako nagłówkiem. Tabele na zeskanowanej stronie wychodzą jako zwykłe linie, bo skan nie ma linii do odczytania. Jeśli tabele to cały powód konwersji, PDF na Excel umieszcza każdą w wierszach i kolumnach, z którymi da się pracować.

Czy działa na zeskanowanych PDF?

Tak. Gdy nie ma warstwy tekstowej, w Twojej przeglądarce działa model rozpoznawania AI, który odczytuje znaki z obrazów stron. Nagłówki są wtedy szeregowane według zmierzonej wysokości linii, a nie rozmiaru czcionki, i nic nie jest wysyłane.