Snížení - Markdown
Typ internetového média | text / markdown [1] |
---|---|
Jednotný identifikátor typu (UTI) | net.daringfireball.markdown |
Vyvinul | John Gruber a Aaron Swartz |
První vydání | 19. března 2004[2][3] |
Poslední vydání | 1.0.1 (17. prosince 2004[4]) |
Typ formátu | Značkovací jazyk |
Rozšířeno na | MultiMarkdown, Markdown Extra, CommonMark,[5] RMarkdown[6] |
Otevřený formát ? | Ano[7] |
webová stránka | odvážný ohnivý míč |
Snížení je lehký značkovací jazyk s prostý text - formátovací syntax, vytvořená v roce 2004 John Gruber a Aaron Swartz. Markdown se často používá pro formátování soubory readme, pro psaní zpráv na online diskusních fórech a pro vytváření bohatý text používat prostý text editor.
Od počátečního popisu Markdownu[9] obsahovaly nejasnosti a nezodpovězené otázky, implementace, které se objevily v průběhu let, mají jemné rozdíly a mnohé přicházejí s příponami syntaxe.
Dějiny
V roce 2002 Aaron Swartz vytvořeno „atx“., "skutečný formát strukturovaného textu".
Swartz a John Gruber poté společně pracovali na vytvoření jazyka Markdown v roce 2004,[2][3] s cílem umožnit lidem „psát pomocí snadno čitelného a snadno psaného formátu prostého textu, volitelně jej převést na strukturálně platný XHTML (nebo HTML )".[4]
Jeho klíčovým designovým cílem je čitelnost - aby byl jazyk čitelný tak, jak je, aniž by vypadal, jako by byl označen značkami nebo pokyny k formátování,[10] na rozdíl od textu formátovaného pomocí značkovací jazyk, jako Formát RTF (RTF) nebo HTML, které mají zjevné značky a pokyny k formátování. Za tímto účelem je jeho hlavní inspirací existující konvence pro označení prostý text v e-mailem, ačkoli také čerpá z dřívějších značkovacích jazyků, zejména setext, Textil, a reStructuredText.[10]
Gruber napsal a Perl skript, Markdown.pl
, který převádí označený text na platný, dobře tvarovaný XHTML nebo HTML a nahrazuje lomené závorky '<
' '>
' a ampersandy '&
„s jejich odpovídajícími odkazy na znakovou entitu. Může převzít roli samostatného skriptu, pluginu pro Blosxom nebo a Pohyblivý typ nebo textového filtru pro BBEdit.[4]
Standardizace
Markdown byl charakterizován neformální specifikací[11] a referenční implementace pro převod do HTML. Postupem času se objevilo mnoho implementací Markdown. Lidé je vyvinuli hlavně kvůli potřebě dalších funkcí nad základní syntaxi - jako jsou tabulky, poznámky pod čarou, seznamy definic (technicky seznamy HTML popisu) a Markdown uvnitř bloků HTML. Chování některých z nich se liší od referenční implementace. Současně vzbudila pozornost řada nejasností v neformální specifikaci.[12] Tyto problémy podnítily vytváření nástrojů, jako je Babelmark[13][14] porovnat výstup různých implementací,[15] a snaha některých vývojářů analyzátorů Markdown o standardizaci. Gruber však tvrdí, že by se mohla mýlit úplná standardizace: „Různé weby (a lidé) mají různé potřeby. Žádná syntaxe by nebyla šťastná.“[16]
V březnu 2016 dva relevantní informační internet RFC byly publikovány:
- RFC 7763 představen MIM typ
text / markdown
s původní variantou. - RFC 7764 projednal a zaregistroval varianty MultiMarkdown Markdown s příchutí GitHub (GFM), Pandoc, CommonMark a mimo jiné Markdown Extra.[17]
CommonMark
Přípony názvu souboru | .md , .snížení [1] |
---|---|
Typ internetového média | text / markdown; varianta = CommonMark [5] |
Jednotný identifikátor typu (UTI) | nejistý[18] |
Konformace UTI | public.plain-text |
Vyvinul | John MacFarlane, otevřený zdroj |
První vydání | 25. října 2014 |
Poslední vydání | 0.29 (6. dubna 2019[19]) |
Typ formátu | Značkovací jazyk |
Rozšířeno z | Snížení |
Rozšířeno na | Markdown s příchutí GitHub |
Otevřený formát ? | Ano |
webová stránka | spec |
Od roku 2012 skupina lidí, včetně Jeff Atwood a John MacFarlane, zahájila to, co Atwood charakterizoval jako snahu o standardizaci.[20] Cílem komunitního webu je „zdokumentovat různé nástroje a zdroje dostupné autorům a vývojářům dokumentů i implementátorům různých implementací markdownů“.[21] V září 2014 Gruber namítal proti použití „Markdown“ ve jménu tohoto úsilí a byl rebrandován jako nový dialekt s názvem CommonMark.[22][23] CommonMark.org zveřejnil několik verzí specifikace, referenční implementace a testovací sady a „[plánuje] oznámit dokončenou specifikační a testovací sadu 1.0 v roce 2019.“[24] Od té doby nebyla vydána žádná specifikace 1.0, protože hlavní problémy stále zůstávají nevyřešeny[25].
Varianty
Weby jako GitHub, Bitbucket, Reddit, Diaspora, Stack Exchange, OpenStreetMap, a SourceForge k usnadnění diskuse mezi uživateli použijte varianty Markdown.[26][27][28][29]
Markdown s příchutí GitHub (GFM)
V roce 2017 vydal GitHub formální specifikaci svého GitHub Flavored Markdown (GFM), která je založena na CommonMark.[26] Je to přísná nadmnožina CommonMark, přesně podle jeho specifikace až na tabulky, přeškrtnutí, automatické odkazy a seznamy úkolů, které GFM přidává jako rozšíření.[30] GitHub také odpovídajícím způsobem změnil analyzátor používaný na jejich webech, což vyžadovalo změnu některých dokumentů. Například GFM nyní vyžaduje, aby symbol hash který vytvoří nadpis, bude oddělen od textu nadpisu znakem mezery.
Markdown Extra
Markdown Extra je a lehký značkovací jazyk na základě Markdownu implementovaného v PHP (původně), Krajta a Rubín.[31] Přidává funkce, které nejsou k dispozici s prostou syntaxí Markdown. Markdown Extra je v některých podporován systémy pro správu obsahu jako například Drupal[32] a TYPO3.[33]
v MediaWiki, je implementován v současné době neudržovaný MarkdownExtraParser rozšíření funkce analyzátoru
Markdown Extra přidává do Markdownu následující funkce:
- markdown markup uvnitř HTML bloky
- prvky s atributem id / class
- „chráněné bloky kódu“, které pokrývají více řádků kódu
- tabulky[34]
- seznamy definic
- poznámky pod čarou
- zkratky
Příklad
Text pomocí syntaxe Markdown | Odpovídající HTML vytvořený procesorem Markdown | Text zobrazený v prohlížeči |
---|---|---|
Nadpis ======= Podnadpis ----------- Odstavce jsou odděleny prázdným řádkem. Dvě mezery na konci řádku způsobí zalomení řádku. | <h1>Nadpis</h1><h2>Podnadpis</h2><str>Odstavce jsou odděleny prázdným řádkem.</str><str>Dvě mezery na konci řádku<br />vytvoří zalomení řádku.</str> | Odstavce jsou odděleny prázdným řádkem. Dvě mezery na konci řádku |
Atributy textu _italic_, **tučně**, `jednoprostorový '.Horizontální pravidlo: --- Přeškrtnutí:~~ přeškrtnuto ~~ | <str>Atributy textu <em>kurzíva</em>, <silný>tučně</silný>, <kód>jednoprostorový</kód>.</str><str>Horizontální pravidlo:</str><hr /><str>Přeškrtnutí:</str><stávkovat>přeškrtnuto</stávkovat> | Atributy textu kurzíva, tučně, Horizontální pravidlo:
|
Seznam odrážek: * jablka * pomeranče * hruškyČíslovaný seznam: 1. pěna 2. opláchněte 3. opakovat | <str>Seznam odrážek:</str><ul><li>jablka</li><li>pomeranče</li><li>hrušky</li></ul><str>Číslovaný seznam:</str><ol><li>pěna</li><li>opláchněte</li><li>opakovat</li></ol> | Seznam odrážek:
Číslovaný seznam:
|
[příklad](http://example.com).![obraz](Icon-images.png "ikona")> Markdown používá e-mailový styl > znaky pro blockquoting.Inline HTML je podporován. | <str>An <A href=„http://example.com“>příklad</A>.</str><str><obr alt="Obraz" titul="ikona" src="Icon-images.png" /></str><blockquote><str>Markdown používá pro blockquoting znaky ve stylu e-mailu.</str></blockquote><str>V souladu <skr titul="Hyper Text Markup Language">HTML</skr> je podporován.</str> | An příklad.
V souladu HTML je podporován. |
Implementace
Implementace Markdown jsou k dispozici pro více než tucet programovacích jazyků; mnoho platforem a rámců navíc podporuje Markdown.[35] Například Markdown pluginy existují pro všechny hlavní blogovací platformy.[36]
Zatímco Markdown je minimální značkovací jazyk a je čten a upravován běžným textovým editorem, existují speciálně navržené editory, které zobrazují náhled souborů se styly, které jsou k dispozici pro všechny hlavní platformy. Mnoho editorů textu a kódů pro všeobecné použití má v sobě zabudované doplňky pro zvýraznění syntaxe pro Markdown nebo dostupné jako volitelné stažení. Editoři mohou obsahovat okno náhledu vedle sebe nebo vykreslit kód přímo v WYSIWYG móda.
- Doxygen - generátor dokumentace zdrojového kódu, který podporuje Markdown s dalšími funkcemi.[37]
- RStudio - an IDE pro R. Poskytuje C ++ funkce obálky pro variantu markdown zvanou západ slunce.[38]
- GitHub Flavored Markdown (GFM) ignoruje podtržítka ve slovech a přidává zvýraznění syntaxe, seznamy úkolů,[39] a stoly.[26]
- Sleva - a C implementace.[40][41]
- MarkAPL - převodník napsaný v Dyalogu APL. Podporuje oplocené bloky, inteligentní typografii, odkazy na odkazy a speciální atributy a může generovat obsah.[42]
- PHP Markdown - balíček knihovny, který obsahuje analyzátor PHP Markdown a jeho sourozence PHP Markdown Extra s dalšími funkcemi.[43]
- Markdig - knihovna .NET, která se řídí specifikacemi CommonMark, a obsahuje kolekci rozšíření a schopnost uživatele vytvářet vlastní.[44]
- Showdown[45] a Smartdown[46] - Markdown renderery v JavaScriptu.
- hackmd.io - online editor Markdown, který podporuje Markdown s dalšími funkcemi.[47]
- gomarkdown - analyzátor Markdown a vykreslovací modul HTML v Go.[48]
Viz také
- Porovnání značkovacích jazyků dokumentů
- Porovnání generátorů dokumentace
- Lehký značkovací jazyk
- Značky Wiki
Reference
- ^ A b C „RFC 7763 - textový / textový typ média“.
- ^ A b Swartz, Aarone (2004-03-19). "Snížení". Aaron Swartz: Weblog.
- ^ A b Gruber, Johne. "Snížení". Odvážná ohnivá koule. Archivovány od originál dne 2004-04-02. Citováno 2014-04-25.
- ^ A b C Zdrojový kód readme Markdown 1.0.1 „Daring Fireball - Markdown“. 17. 12. 2004. Archivovány od originál dne 2004-04-02.
- ^ A b „RFC7764 - Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations“.
- ^ „RMarkdown Reference site“.
- ^ „Markdown: Licence“. Odvážná ohnivá koule. Citováno 2014-04-25.
- ^ Odvážná ohnivá koule prohlášení podle autora John Gruber
- ^ „Daring Fireball: Introducing Markdown“. daringfireball.net. Citováno 2020-09-23.
- ^ A b Markdownová syntaxe „Daring Fireball - Markdown - Syntax“. 2013-06-13.
Především je však zdůrazněna čitelnost. Dokument ve formátu Markdown by měl být publikovatelný tak, jak je, jako prostý text, aniž by vypadal, jako by byl označen tagy nebo pokyny k formátování. Zatímco Markdownova syntaxe byla ovlivněna několika existujícími filtry text-to-HTML - včetně Setext, atx, Textile, reStructuredText, Grutatext a EtText - největším zdrojem inspirace pro Markdownovu syntaxi je formát prostého e-mailu.
- ^ „Dokumentace syntaxe markdownů“. Odvážná ohnivá koule.
- ^ „Specifikace Markdown s příchutí GitHub - Proč je potřeba specifikace?“. github.github.com.
- ^ „Babelmark 2 - Porovnat implementace markdownů“. Johnmacfarlane.net. Citováno 2014-04-25.
- ^ „Babelmark 3 - Porovnejte implementace Markdown“. github.io. Citováno 2017-12-10.
- ^ „Babelmark 2 - FAQ“. Johnmacfarlane.net. Citováno 2014-04-25.
- ^ Gruber, John [@gruber] (4. září 2014). „@tobie @espadrine @comex @wycats Protože různé weby (a lidé) mají různé potřeby. Žádná syntaxe by nepotěšila všechno.“ (Tweet) - prostřednictvím Cvrlikání.
- ^ „Markdown Variants“. IANA. 2016-03-28. Citováno 2016-07-06.
- ^ „UTI dokumentu CommonMark“.
- ^ "Specifikace CommonMark".
- ^ Atwood, Jeff (2012-10-25). „The Future of Markdown“. CodingHorror.com. Citováno 2014-04-25.
- ^ „Stránka komunity Markdown“. GitHub. Citováno 2014-04-25.
- ^ „Standard Markdown is now Common Markdown“. Jeff Atwood. Citováno 2014-10-07.
- ^ „Standardní Markdown se stává běžným Markdownem, pak CommonMarkem“. InfoQ. Citováno 2014-10-07.
- ^ „CommonMark“. Citováno 20. června 2018.
Aktuální verze specifikace CommonMark je kompletní a po roce veřejné zpětné vazby docela robustní ... ale ne tak docela konečná. S vaší pomocí plánujeme v roce 2019 oznámit dokončenou sadu 1.0 spec a testovací sadu.
- ^ „Problémy, které MUSÍME vyřešit před vydáním 1.0 [zbývá 6]“. Diskuse o společné značce. 2015-07-26. Citováno 2020-10-02.
- ^ A b C „Specifikace Markdown s příchutí GitHub“. GitHub. Citováno 2020-06-11.
- ^ „Reddit markdown primer. Nebo, jak vlastně děláš všechno to fantastické formátování ve svých komentářích?“. Reddit.com. Citováno 2013-03-29.
- ^ „Nápověda k úpravám Markdown“. StackOverflow.com. Citováno 2014-04-11.
- ^ „SourceForge: Průvodce syntaxí Markdown“. SourceForge.net. Citováno 2013-05-10.
- ^ „Formální specifikace pro Markdown s příchutí GitHub“. GitHub Engineering. Citováno 16. března 2017.
- ^ Fortin, Michel (2018). „PHP Markdown Extra“. Web společnosti Michel Fortin. Citováno 2018-12-26.
- ^ „Markdown editor for BUEditor“. 4. prosince 2008.
- ^ „Markdown pro TYPO3 (markdown_content)“. extensions.typo3.org.
- ^ „PHP Markdown Extra“. Michel Fortin.
- ^ „Komunitní stránka W3C implementací Markdown“. W3C Markdown Wiki. Citováno 24. března 2016.
- ^ „Markdown THrowdown - Co se stane, když software FOSS získá firemní podporu“. Ars Technica. 5. 10. 2014.
- ^ „Doxygen Manual: Markdown support“.
- ^ Allaire, J.J.; e.a. (2015-06-30). „Markdown.cpp“. GitHub projekt RStudio. Citováno 2016-07-07.
- ^ „Writing on GitHub“. help.github.com. GitHub, Inc.. Citováno 9. července 2014.
- ^ „Discount - a C implementation of the Markdown markup language“. Citováno 2020-03-01.
- ^ Parsons, David (2016-05-28). "SLEVA". GitHub. Citováno 2016-07-07.
sleva na Otevřete rozbočovač
- ^ "Převodník Markdown napsaný v Dyalog APL".
- ^ „PHP Markdown“. Citováno 2016-03-01.
- ^ „Rychlý, výkonný, rozšiřitelný procesor Markdown pro .NET kompatibilní s CommonMark“. Citováno 2020-10-19.
- ^ "Obousměrný převaděč Markdown na HTML napsaný v Javascriptu!". Citováno 2020-10-19.
- ^ „Knihovna Javascript pro překlady, vykreslování a interakci s dokumenty Smartdown“. Citováno 2020-10-19.
- ^ „Výukový program HackMD - HackMD“.
- ^ "Analyzátor Markdown a HTML renderer v Go". Citováno 2020-10-19.
externí odkazy
- Oficiální webové stránky pro původní značku Johna Grubera