Převod HTML do Markdown transformuje HTML značky na Markdown — odlehčenou syntaxi pro formátování prostého textu, kterou v roce 2004 vytvořil John Gruber. Markdown byl navržen tak, aby byl čitelný i bez vykreslování. Tam, kde HTML vyžaduje otevírací a uzavírací značky jako <strong> nebo <a href="">, Markdown používá zkratkové znaky: **tučné**, [odkaz](url) a # nadpisy. Převod HTML do Markdown produkuje soubory, které se snáze čtou, upravují a verzují než surové HTML.
Při převodu se HTML elementy mapují na jejich Markdown ekvivalenty. <h2> se stane ##, <ul><li> se stane - položka a <a> značka se přemění na [text](url). Některé HTML elementy nemají přímý Markdown ekvivalent, například <div>, <span> nebo vlastní datové atributy. Převodníky tyto značky obvykle odstraní nebo je ponechají jako surové HTML, záleží na konfiguraci.
Markdown se stal standardním formátem pro vývojářskou dokumentaci (GitHub, GitLab, Bitbucket), generátory statických stránek (Hugo, Jekyll, Astro), aplikace pro psaní poznámek (Obsidian, Notion) a technické blogy. Převod stávajícího HTML obsahu do Markdown je obvyklý krok při migraci webů, importu obsahu z CMS nebo archivaci webových stránek v přenosném formátu. Na rozdíl od HTML produkují Markdown soubory čisté diffy ve správě verzí, což usnadňuje revize změn dokumentace.
Proč použít převodník HTML do Markdown?
Ruční přepisování HTML na Markdown je pomalé a náchylné k chybám, zejména u stránek s vnořenými seznamy, tabulkami nebo desítkami odkazů. Automatizovaný převodník zvládne strukturní mapování okamžitě a konzistentně.
⚡
Okamžitý převod v prohlížeči
Vložte HTML a Markdown výstup získáte v řádu milisekund. Žádný round-trip na server, žádné čekání na frontu zpracování. Převod probíhá výhradně v prohlížeči pomocí JavaScriptu.
🔒
Vaše data zůstávají soukromá
Vaše HTML nikdy neopustí váš počítač. Veškeré zpracování probíhá na straně klienta — žádné nahrávání, žádné logování, žádný přístup třetích stran k vašemu obsahu.
📝
Zachování struktury dokumentu
Nadpisy, seznamy, odkazy, obrázky, bloky kódu a tabulky jsou mapovány na správné Markdown ekvivalenty. Vnořené struktury a inline formátování jsou zpracovávány rekurzivně.
🔀
Bez účtu nebo instalace
Otevřete nástroj a začněte převádět. Není třeba nic instalovat, konfigurovat API klíče ani vyplňovat registrační formulář. Funguje na jakémkoli zařízení s moderním prohlížečem.
Případy použití převodníku HTML do Markdown
Frontend vývojář: migrace CMS
Exportujte příspěvky nebo stránky z WordPressu, Drupalu nebo headless CMS jako HTML a převeďte je do Markdown pro použití s generátory statických stránek jako Next.js, Astro nebo Hugo.
Backend inženýr: API dokumentace
Převeďte automaticky generovanou HTML dokumentaci API na Markdown soubory, které žijí vedle zdrojového kódu. Markdown dokumenty se renderují přímo na GitHubu a lze je verzovat spolu s kódem, který popisují.
DevOps: převod runbooků
Přeměňte interní wiki stránky (Confluence, SharePoint) exportované jako HTML na Markdown runbooky uložené v repozitáři Git vedle infrastrukturního kódu, který popisují.
QA inženýr: dokumentace testovacích případů
Převeďte HTML testovací zprávy nebo manuální testovací plány z webových nástrojů na Markdown soubory, které lze revidovat v pull requestech společně s ověřovanými změnami kódu.
Datový inženýr: čištění po web scrapingu
Odstraňte HTML boilerplate ze stažených webových stránek a získejte čistý Markdown text. Odstraní navigaci, reklamy a layoutové značky a zachová obsah článku a jeho strukturu.
Student: výzkumné poznámky
Zkopírujte obsah z webových zdrojů a převeďte HTML na Markdown pro import do Obsidianu, Notionu nebo libovolného systému pro poznámky na bázi Markdown. Zachová nadpisy, odkazy a formátování.
Přehled mapování HTML elementů na Markdown
Tabulka níže ukazuje, jak se běžné HTML elementy mapují na jejich Markdown ekvivalenty. Toto mapování se řídí konvencemi GitHub-Flavored Markdown (GFM), které rozšiřují specifikaci CommonMark o tabulky, přeškrtnutí a seznamy úkolů. Elementy neuvedené v tabulce (například <div>, <form> nebo vlastní webové komponenty) nemají Markdown ekvivalent a jsou buď odstraněny, nebo ponechány jako surové HTML.
HTML element
Markdown syntaxe
Poznámky
<h1>...<h6>
# ... ######
ATX headings, level matches tag number
<p>
Blank line separation
Double newline between paragraphs
<strong>, <b>
**text**
Bold / strong emphasis
<em>, <i>
*text*
Italic / emphasis
<a href="url">
[text](url)
Inline link with optional title
<img src="url">

Image with alt text
<ul><li>
- item
Unordered list with dash or asterisk
<ol><li>
1. item
Ordered list, numbers restart per block
<blockquote>
> text
Block quote, nestable with >>
<code>
`code`
Inline code span
<pre><code>
```lang\ncode\n```
Fenced code block with optional language
<hr>
---
Horizontal rule (three dashes)
<table>
| col | col |
GFM table syntax with alignment
<del>, <s>
~~text~~
Strikethrough (GFM extension)
Varianty Markdown: GFM vs. CommonMark vs. originál
Ne všechny Markdown jsou stejné. Výstupní formát je důležitý, protože různé platformy parsují Markdown odlišně. Tři nejrozšířenější varianty jsou GitHub-Flavored Markdown (GFM), CommonMark a Gruberův originální Markdown.
GitHub-Flavored Markdown (GFM)
Nejrozšířenější varianta. Přidává tabulky (pipe syntaxe), přeškrtnutí (~~text~~), seznamy úkolů (- [x]) a automatické propojování URL. Používají ji GitHub, GitLab a většina vývojářských nástrojů. Tento převodník ve výchozím nastavení produkuje Markdown kompatibilní s GFM.
CommonMark
Přísná specifikace, která odstraňuje nejednoznačnosti originální Markdown syntaxe. Definuje přesná pravidla pro pokračování seznamů, parsování zvýraznění a vnořování bloků. Slouží jako základ pro GFM a mnoho generátorů statických stránek.
Originální Markdown
Gruberova specifikace z roku 2004. Nepodporuje tabulky, ohraničené bloky kódu ani přeškrtnutí. Většina moderních nástrojů ho považuje za podmnožinu CommonMark. Dnes se jako cílový formát téměř nepoužívá.
Ukázky kódu
Funkční příklady v JavaScriptu (Turndown), Pythonu (markdownify a html2text), Go a Pandocu na příkazovém řádku.
JavaScript (Turndown)
import TurndownService from 'turndown'
const turndown = new TurndownService({ headingStyle: 'atx' })
const html = '<h1>Title</h1><p>A <strong>bold</strong> paragraph.</p>'
const md = turndown.turndown(html)
console.log(md)
// → "# Title\n\nA **bold** paragraph."
Python (markdownify)
from markdownify import markdownify
html = '<h2>Section</h2><ul><li>First</li><li>Second</li></ul>'
md = markdownify(html, heading_style='ATX')
print(md)
# → "## Section\n\n- First\n- Second"
Python (html2text)
import html2text
converter = html2text.HTML2Text()
converter.body_width = 0 # disable line wrapping
html = '<p>Visit <a href="https://example.com">Example</a> for details.</p>'
md = converter.handle(html)
print(md)
# → "Visit [Example](https://example.com) for details."
# Convert an HTML file to Markdown
pandoc input.html -f html -t markdown -o output.md
# Pipe HTML from stdin
echo '<p>Hello <em>world</em></p>' | pandoc -f html -t markdown
# → Hello *world*
# Use GitHub-Flavored Markdown output
pandoc input.html -f html -t gfm -o output.md
Nejčastější dotazy
Které HTML elementy nelze převést na Markdown?
Markdown nemá ekvivalent pro <div>, <span>, <form>, <input>, <iframe> ani žádný element s vlastními CSS třídami a styly. Většina převodníků tyto značky odstraní a ponechá pouze vnitřní text. Některé převodníky mohou nepodporované HTML ponechat beze změny, což je platné, protože specifikace Markdown inline HTML explicitně povoluje. Pokud potřebujete tyto elementy zachovat, nakonfigurujte převodník tak, aby uchovával surové HTML místo jeho odstranění.
Jak se HTML tabulky převádí na Markdown?
HTML tabulky se mapují na GFM pipe-table syntaxi: | Záhlaví | Záhlaví | s oddělovacím řádkem | --- | --- |. GFM tabulky nepodporují colspan, rowspan ani stylování na úrovni buněk. Složité tabulky se sloučenými buňkami jsou zploštěny, čímž může dojít ke ztrátě strukturálních informací. Pro jednoduché datové tabulky je převod bezeztrátový.
Je převod z HTML do Markdown bezeztrátový?
Ne. Markdown je podmnožinou HTML, takže při převodu vždy dochází ke ztrátě některých informací. CSS třídy, inline styly, datové atributy, formulářové elementy a sémantické značky jako <article> nebo <section> nemají Markdown ekvivalent. Textový obsah a základní struktura (nadpisy, seznamy, odkazy, zvýraznění) jsou zachovány přesně. Pro většinu pracovních postupů dokumentace a migrace obsahu jsou zachované elementy ty podstatné.
Jaký je rozdíl mezi HTML do Markdown a HTML do prostého textu?
Převod HTML do prostého textu odstraní veškeré formátování a produkuje surový text bez struktury. Převod HTML do Markdown zachovává strukturu dokumentu: nadpisy zůstávají nadpisy, odkazy si uchovávají URL, seznamy zůstávají seznamy a zvýraznění je zachováno. Markdown výstup lze zpět vykreslit do HTML se stejnou logickou strukturou.
Mohu Markdown převést zpět do HTML?
Ano. Každý Markdown procesor (marked, markdown-it, Python-Markdown, goldmark) převádí Markdown do HTML. Tato zpáteční cesta je jedním z důvodů oblíbenosti Markdown: píšete v čitelném formátu a renderujete do HTML pro web. Zpáteční cesta není dokonale symetrická, protože převod HTML do Markdown odstraní nepodporované elementy.
Jak převodník nakládá s HTML obsahujícím inline CSS nebo JavaScript?
Inline CSS (atributy style) a bloky <style> jsou při převodu odstraněny, protože Markdown nenabízí syntaxi pro stylování. JavaScript (<script> značky a obslužné rutiny událostí jako onclick) je také odstraněn. Převodník extrahuje pouze obsah a strukturu dokumentu. Díky tomu je převod HTML do Markdown užitečným krokem sanitizace při importu nedůvěryhodného HTML obsahu do vaší dokumentace.
Kterou variantu Markdown bych měl použít pro svůj projekt?
Použijte GitHub-Flavored Markdown (GFM), pokud bude váš obsah zobrazen na GitHubu, GitLabu nebo většině dokumentačních platforem. Použijte CommonMark, pokud potřebujete přísné dodržení specifikace a předvídatelné parsování napříč různými renderery. Originální Markdown je relevantní pouze pro starší systémy. GFM je nejbezpečnější výchozí volba pro většinu projektů.