Nagłówek ## Łódź po zamianie na kotwicę linku może stracić polskie znaki diakrytyczne — ą ć ę ł ń ó ś ź ż — bo wiele generatorów slugów usuwa znaki spoza podstawowego alfabetu łacińskiego, więc ta sama nazwa miasta i nazwa pliku mogą się rozjechać.
Podstawowa składnia
# Nagłówek— nagłówki różnych poziomów według liczby znaków#.**pogrubienie**i*kursywa*— wyróżnienie tekstu.[tekst](url)— link.- punktlub1. punkt— listy wypunktowane i numerowane.- ``` — bloki kodu z podświetlaniem składni według nazwy języka.
Dlaczego polskie znaki diakrytyczne komplikują kotwice
Gdy nagłówek zamienia się w link wewnętrzny, generator tworzy z niego "slug": małe litery, spacje zamienione na myślniki. Część implementacji dodatkowo usuwa ogonki i kreski, więc ## Łódź może dać kotwicę #lodz w jednym rendererze i #łódź w innym. Ta rozbieżność ma znaczenie zwłaszcza przy ręcznym linkowaniu do sekcji dokumentu — link działający lokalnie może przestać działać po zmianie parsera.
Oryginalny Markdown nie definiował tabel ani nie istniał CommonMark
Markdown opublikowany przez Johna Grubera w 2004 roku był opisem w prozie, a nie formalną gramatyką, i nie obejmował tabel, przekreślonego tekstu ani bloków kodu z podświetlonym językiem. Przez dekadę każda implementacja interpretowała po swojemu niejednoznaczne fragmenty oryginalnego tekstu, aż w 2014 roku powstał CommonMark, który ustalił precyzyjną gramatykę — a GitHub Flavored Markdown (GFM) dodał na tej podstawie tabele i listy zadań, dziś oczywiste w każdym README.
Konwersja na HTML i z powrotem
Konwersja Markdown → HTML jest bezpośrednia: parser rozpoznaje konstrukcje składniowe i generuje odpowiednie znaczniki. Konwersja odwrotna, HTML → Markdown, jest trudniejsza, ponieważ HTML obsługuje znacznie więcej możliwości formatowania niż podstawowy Markdown, więc część znaczników (złożone tabele, zagnieżdżone style) może zostać uproszczona lub utracona.
Do czego się przydaje
- Szybkie sprawdzenie, jak plik Markdown będzie wyglądał po wyrenderowaniu, bez publikowania go.
- Konwersja zawartości strony lub dokumentu na Markdown w celu przechowywania w systemie kontroli wersji.
- Przygotowanie treści HTML do wstawienia w aplikacji akceptującej tylko Markdown.