Dokument Markdown (.md)
CommonMark StandardníMarkdown (MD) je nejoblíbenější lehký značkovací jazyk na světě, který vytvořil John Gruber tak, aby byl snadno čitelný a zapisovatelný jako prostý text a zároveň jej bylo možné čistě převádět do strukturovaného HTML.
Kontrola a metadata
Operační systémy a analyzátory souborů identifikují soubory Markdown kontrolou počáteční binární sekvence bajtů:
Podpis hlavičky na úrovni bajtů (Magic Bytes)
Operační systémy a analyzátory souborů identifikují soubory Markdown kontrolou počáteční binární sekvence bajtů:
HEXADECIMÁLNÍ PODPIS (POSUN 0):
Žádná pevná signatura (Markdown je prostý text)ASCII REPREZENTACE: Bez pevného podpisu
Standardizace: CommonMark Specification / GitHub Flavored Markdown (GFM)
Technické specifikace
| Architektura kontejneru | Prostý textový soubor UTF-8 s jednoduchým formátováním pomocí interpunkce (nadpisy, seznamy, tučné písmo, kurzíva, bloky kódu) |
| Komprese | Nekomprimovaný text (lze snadno komprimovat pomocí Gzipu nebo Brotli) |
| Pořadí bajtů | Proud textu UTF-8 / Unicode |
| Barevné prostory | Nevztahuje se (značkování prostého textu) |
| Kanály a struktura | Nadpisy, citace, číslované i nečíslované seznamy, bloky kódu, hypertextové odkazy, obrázky a tabulky |
| Max. rozměry | Délka textového dokumentu není omezená |
| Průhlednost | Žádná (pouze text) |
| Streamování a progresivní načítání | Průběžné zpracování blokových a vnitrořádkových tokenů po jednotlivých řádcích |
Technická srovnávací matice: Markdown vs konkurence
| Technický atribut | Markdown (Aktuální) | HTML | TXT | |
|---|---|---|---|---|
| Jednoduchost tvorby | Extrémně rychlé psaní prostého textu | Upovídaná syntaxe značek (<p>, <div>) | Rychlé psaní (bez formátování) | Vyžaduje grafický editor rozvržení |
| Čitelnost pro člověka (surový text) | Nedotčená čitelnost přirozeného textu | Nepřehledné kvůli značkám a závorkám | Nedotčená čitelnost textu | Binární nečitelné surové bajty |
| Konverze do HTML | Přímý deterministický výstup 1:1 | Nativní webový jazyk | Vyžaduje ruční formátování | Pevný grafický výstup |
| Vývojářské nástroje | Podpora se liší podle programu. | Podpora se liší podle programu. | Podpora se liší podle programu. | Distribuce dokumentů |
Běžné režimy poškození a příručka pro obnovení v hex
Bloky kódu se vykreslují jako běžné odstavce nebo nadpisy selhávají ve formátování.
Hlavní příčina: Chybějící mezera za symbolem nadpisu '#' nebo neuuzavřené trojité zpětné uvozovky (```) vymezující kód.
Obnovení: Ověřte a přeformátujte syntaxi Markdownu pomocí nástroje File2File.app Markdown Linter.
Bezpečnostní analýza a vektory útoků na parser
Konvertory Markdownu často ve výchozím nastavení povolují surové vkládané HTML, což může vést ke zranitelnosti Cross-Site Scripting (XSS), pokud není obsah sanitován.
Známé vektory útoků
- Injekce XSS prostřednictvím surových HTML prvků (např. '<script>' nebo '<img onerror=...>') vložených do textu Markdownu.
- Odepření služby (DoS) prostřednictvím hluboce vnořených struktur citací nebo seznamů v nekompatibilních parserech.
- Škodlivá schémata odkazů ('javascript:') uvnitř syntaxe odkazů v Markdownu.
Doporučené bezpečnostní postupy: Vždy sanitujte generovaný výstup HTML pomocí DOMPurify a zakažte nebezpečné protokoly URL.
Historický vývoj a milníky
Klíčové výhody a přednosti
- Maximální čitelnost pro člověka: formátovaný text působí čistě a přirozeně i při zobrazení v základním terminálu nebo textovém editoru.
- Markdown se v dokumentaci používá často, ale syntaxe a vykreslování se liší podle programu.
- Žádná závislost na konkrétním dodavateli (vendor lock-in): soubory prostého textu zůstanou čitelné po staletí bez nutnosti vlastního specializovaného softwaru.
Technická omezení a nevýhody
- Původní specifikace z roku 2004 měla nejednoznačná pravidla parsování, což vedlo k postupné fragmentaci dialektů (CommonMark vs. GFM vs. Kramdown).
- Chybí nativní podpora pro komplexní funkce stránkového layoutu, jako jsou vícesloupcové časopisecké sazby, obtékání textu nebo číslování stránek.
- Vložené obrázky jsou odkazovány externě namísto uložení přímo uvnitř souboru dokumentu.
Zajímavé technické drobnosti
- Aaron Swartz, který v 17 letech spoluvytvářel Markdown s Johnem Gruberem, byl také spoluzakladatelem Redditu a autorem RSS 1.0.
- Mnoho repozitářů na GitHubu používá soubor README.md k představení projektu, některé však mohou mít jiný název nebo soubor README vůbec neobsahovat.
- Filozofie návrhu Markdownu říká: „Hlavním cílem návrhu formátovací syntaxe Markdownu je dosáhnout maximální možné čitelnosti."
Často kladené technické otázky
K čemu se používá Markdown?
Markdown se používá pro psaní dokumentace, souborů README na GitHubu, příspěvků na blogu, psaní poznámek v aplikacích jako Obsidian a Notion a psaní zpráv na platformách jako Discord a Slack.
Jak mohu převést Markdown do PDF nebo HTML?
Soubory Markdown (.md) můžete jedním kliknutím převést na stylizované dokumenty PDF nebo čistý kód HTML pomocí File2File.app přímo ve vašem webovém prohlížeči.
Co je to GitHub Flavored Markdown (GFM)?
GFM je rozšířená verze Markdownu od GitHubu, která přidává podporu pro tabulky, seznamy úkolů s políčky zaškrtnutí ([x]), přeškrtnutí (~~text~~) a bloky kódu se zvýrazněním syntaxe.