Markdown
Markdown-mark | |
Vznikl v | 25. března 2004[1] |
---|---|
Vývojář | John Gruber |
Poslední verze | 1.0.1 (17. prosince 2004) |
Licence | Ano[2] |
Web | daringfireball |
Markdown je odlehčený značkovací jazyk, který slouží pro úpravu prostého textu a jeho následný převod na formátovaný text publikovatelný na webu, zejména ve formátu HTML. Umožňuje pomocí jednoduchých formátovacích značek vyznačit v textu nadpisy a seznamy, doplnit odkazy, obrázky atd. Cílem jazyka je, aby byl text dobře čitelný a publikovatelný i v původním formátu prostého textu.[1]
Markdown vytvořil John Gruber s pomocí Aarona Swartze,[3] hlavní inspirací byl formát prostého textu e-mailu.[1]
Historie a použití
Jazyk byl původně vytvořen v roce 2004 Johnem Gruberem, jako jednoduchý značkovací jazyk pro převod textu do validního XHTML nebo HTML. Jazyk byl původně implementován v programovacím jazyku Perl, ale postupně se rozšířil a je znám a používán i v jiných jazycích jako jsou například PHP nebo Python. Používá se i u popisu dokumentace nebo jiných poznámek na GitHubu (přípona .md; implicitním popisem každého projektu na Gitu je obsah souboru README.md).
Markdown je velice oblíbeným nástrojem pro blogování, protože umožňuje velice jednoduše vytvářet odkazy a vkládat obrázky. Některé redakční systémy umožňují vkládat obsah právě pomocí Markdown. Lze ho použít také jako nástroj pro psaní knih nebo poznámek. Protože se jedná o prostý text je možné pro vytváření dokumentů použít libovolný editor.
Vlastnosti
Jazyk je jednoduchý, přehledný a jeho syntax se chová očekávaně. Jazyk umožňuje kombinovat text a (X)HTML, takže tam, kde není určitá vlastnost implementovaná, může uživatel použít přímý zápis v HTML.
Porovnání s WYSIWYG editory – velká část z nich pro online editaci HTML jednotlivá formátování implementují vkládáním značek <span> s inline CSS stylováním navzájem do sebe a při zrušení formátování mají problémy při odstranění prázdných „spanů“, čímž ve výsledném kódu vzniká balast, který nabírá velikost a přispívá k nečitelnosti a potenciálně dalším problémům. Tyto přebytky HTML mají tendenci narůstat s každou editací. V Markdownu toto nehrozí, protože HTML se generuje ze zdrojového textu/kódu. Rozhraní WYSIWYG editorů navíc běžné uživatele (včetně těch bez estetického cítění) láká k přehnané „výtvarné realizaci“, kdy své statě nadměrně formátují a kombinují více formátů dohromady, přehnaně vybarvují text nekonzistentními barvami, které např. nemusejí korespondovat s korporátní identitou nebo barevnou koncepcí stránky. Empiricky vzato, práce s Markdownem tyto problémy nemívá.
Markdown také rozpozná a automaticky vkládá HTML entity; zvládne i inteligentně vložit typografické uvozovky a delší pomlčky (ze dvou nebo tří pomlček v ASCII).
Na rozdíl od HTML má Markdown vyšší čitelnost lidským okem a menší pravděpodobnost udělání chyby např. opomenutím nějaké koncové značky apod.
Rozšíření
Existuje rozšířená syntaxe, které implementuje vlastnosti, které původní Markdown nezahrnoval. Obecně se tato rozšíření označují jako Markdown Extra. Ten umožňuje oproti původnímu Markdown například:
- Vkládat Markdown do HTML bloků (původní Markdown umožňoval pouze vkládání HTML bloků do Markdown-u).
- Elementy s id/class atributy
- Definiční seznamy
- Poznámky pod čarou
- Tabulky
- KaTeX pro vzorce
- mermaid pro UML, sekvenční diagramy, vývojové diagramy, Ganttovy diagramy
- …atd.
Implementace
Původní implementace je pro programovací jazyk Perl. Nejznámější jsou tyto implementace:
- MultiMarkdown také pro jazyk Perl[4]
- PHP Markdown pro jazyk PHP[5]
- Python-Markdown pro jazyk Python[6]
Příklad užití
Zdrojový text ve formátu jazyka Markdown | Zdrojový text ve formátu HTML | Text zobrazený v prohlížeči |
---|---|---|
Hlavní nadpis ============= * toto * je * seznam Menší podnadpis --------------- 1. toto 2. se čísluje 1. ale na číslech nezáleží # Hlavní nadpis jinak ## Menší nadpis jinak ### Ještě menší nadpis jinak Odstavce se oddělují prázdným řádkem. Na délce řádků nezáleží Udělám nový odstavec. Ještě odkaz na [dokumentaci](http://daringfireball.net/projects/markdown/syntax) Horizontální oddělovač: --- Vlastnosti textu _kurzíva_, *kurzíva*, __tučně__, **tučně**, `neproporcionální`. <p>Dle libosti ''můžu používat'' html</p> | <h1>Hlavní nadpis</h1>
<ul>
<li>toto</li>
<li>je</li>
<li>seznam</li>
</ul>
<h2>Menší podnadpis</h2>
<ol>
<li>toto </li>
<li>se čísluje</li>
<li>ale na číslech nezáleží</li>
</ol>
<h1>Hlavní nadpis jinak</h1>
<h2>Menší nadpis jinak</h2>
<h3>Ještě menší nadpis jinak</h3>
<p>Odstavce se oddělují
prázdným řádkem. Na délce řádků nezáleží</p>
<p>Udělám nový odstavec. Ještě odkaz na
<a href="http://daringfireball.net/projects/markdown/syntax">dokumentaci</a></p>
Horizontální oddělovač:
<hr>
Vlastnosti textu <i>kurzíva</i>, <i>kurzíva</i>, <b>tučně</b>, <b>tučně</b>, <code>neproporcionální</code>.
<p>Dle libosti <em>můžu používat</em> html</p>
| Hlavní nadpis
Menší podnadpis
Hlavní nadpis jinakMenší nadpis jinakJeště menší nadpis jinakOdstavce se oddělují prázdným řádkem. Na délce řádků nezáleží Udělám nový odstavec. Ještě odkaz na dokumentaci Horizontální oddělovač: Vlastnosti textu kurzíva, kurzíva, tučně, tučně, Dle libosti můžu používat html |
Nebo obrázek ![Alt text](https://commons.wikimedia.org/wiki/File:Markdown-mark.svg) | <p>Nebo obrázek
<img alt="Alt text" src="https://commons.wikimedia.org/wiki/File:Markdown-mark.svg" /></p>
| |
Konec řádku uprostřed odstavce se udělá pomocí několika mezer na konci řádku. Toto je [hyperlink](https://cs.wikipedia.org/wiki/Hyperlink) nebo <http://cs.wikipedia.org> | <p>Konec řádku uprostřed odstavce <br />
se udělá<br />
pomocí několika mezer na konci řádku.</p>
<p>Toto je <a href="https://cs.wikipedia.org/wiki/Hyperlink">hyperlink</a></p>
<p>nebo <a href="http://cs.wikipedia.org">http://cs.wikipedia.org</a></p>
| Konec řádku uprostřed odstavce Toto je hyperlink |
Odkazy
Reference
- ↑ a b c Daring Fireball: Markdown [online]. Web.archive.org [cit. 2014-04-25]. Dostupné v archivu pořízeném z originálu. (anglicky)
- ↑ Markdown: License [online]. Daring Fireball [cit. 2014-04-25]. Dostupné online. (anglicky)
- ↑ http://www.aaronsw.com/weblog/001189
- ↑ https://github.com/fletcher/MultiMarkdown
- ↑ http://michelf.ca/projects/php-markdown/
- ↑ Archivovaná kopie. pythonhosted.org [online]. [cit. 2014-05-27]. Dostupné v archivu pořízeném dne 2014-07-01.
Související články
- BlueGriffon - HTML editor, který umožňuje vkládat Markdown
Externí odkazy
- Obrázky, zvuky či videa k tématu Markdown na Wikimedia Commons
- https://stackedit.io/app – online editor/tester jazyka Markdown