Markdown se stal univerzálním standardem psaní pro vývojáře, content manažery, technické autory a dokumentační specialisty. Navržený Johnem Gruberem a Aaronem Swartzem v roce 2004 umožňuje formátovat prostý text lehkými značkami nadpisů, hvězdičkami, závorkami a backticky, aniž byste ručně psali HTML tagy. Prohlížeče, e-mailoví klienti, CMS a dokumentační portály ale potřebují standardní HyperText Markup Language (HTML), aby vykreslily formátované stránky.
Proč převádět Markdown na HTML na klientovi?
Tradiční webové nástroje spoléhají na serverové skripty (Node.js, Python, PHP), které zpracují nahrané Markdown soubory a vrátí HTML. Tento model má pro moderní uživatele zásadní nevýhody:
- Bezpečnost dat a duševní vlastnictví: Nahrání proprietární dokumentace, konceptů článků, interních politik nebo dat klientů na servery třetích stran vystavuje text logům, retenci a únikům.
- Latence sítě a výpadky: Odesílání těžkých textových payloadů přes HTTP přidává latenci, zejména u velkých dokumentů nebo nespolehlivého připojení.
- Paywally: Starší převodníky omezují použití, denní limity dokumentů, povinné účty nebo předplatné za zvýraznění kódu a export tabulek.
Utiliome to řeší výkonným JavaScriptem na klientovi. Po vložení Markdown Web API parsuje vstup přímo ve vlákně prohlížeče. Žádný bajt nepřejde síť, takže máte 100% důvěrnost, submilisekundovou rychlost a offline schopnost po načtení.
Mapování syntaxe: z Markdown prvků na sémantické HTML tagy
Pochopení, jak se lehké tokeny mění na HTML prvky, je důležité pro vydavatele i inženýry. Převodník dodržuje specifikace CommonMark a rozšíření GitHub Flavored Markdown (GFM):
- Nadpisy (
#až######): Jedna mřížka (#) mapuje na<h1>, dvě (##) na<h2>až po<h6>. Strukturované nadpisy tvoří čistou osnovu pro SEO i přístupnost (WCAG). - Odstavce a zalomení řádků: Bloky oddělené prázdnými řádky se mění na sémantické
<p>. Tvrdé zalomení vložíte koncovými mezerami nebo explicitními break tagy. - Důraz a formátování: Jedna hvězdička nebo podtržítko (
*text*nebo_text_) se vykreslí jako<em>. Dvojité značky (textnebo__text__) dají<strong>. Přeškrtnutí (~~text~~) dá<del>. - Neuspořádané a uspořádané seznamy: Odrážky
-,*nebo+tvoří<ul>s<li>. Číslované řádky (1.,2.) se parsují do<ol>. - Odkazy a obrázky:
[Anchor Text](https://example.com)dá<a href="https://example.com">Anchor Text</a>. S vykřičníkemvznikne<img src="image.jpg" alt="Alt Text">. - Citace: Řádky s
>se vykreslí v<blockquote>— ideální pro citace a klíčové myšlenky. - Kód a fenced bloky: Inline kód v jednom backticku (
`code`) dá<code>code</code>. Víceřádkové bloky v trojitých backticích (```javascript) se vykreslí v<pre><code>a zachovají odsazení, tabulátory i zalomení.