Markdown

Da Wikipedia, l'enciclopedia libera.
Markdown
Markdown-mark.svg
Estensione .md, .markdown[1]
Tipo MIME text/markdown (proposto)
Sviluppato da John Gruber
Proprietario John Gruber
1ª pubblicazione 2004 marzo 25; 13 anni fa[2]
Ultima versione 1.0.1 (2004 dicembre 17; 12 anni fa)
Tipo linguaggio di markup
Formato aperto? [3]
Sito web daringfireball.net/projects/markdown/

Markdown è un linguaggio di markup con una sintassi del testo semplice progettata in modo che possa essere convertita in HTML e in molti altri formati usando un tool omonimo.[4][5] Markdown è spesso usato per formattare file README, per scrivere messaggi in forum di discussioni e per creare testo formattato utlizzando un editor di testo semplice.

Storia[modifica | modifica wikitesto]

John Gruber, con il contributo sostanziale di Aaron Swartz,[6] ha creato il linguaggio Markdown nel 2004 con l'obiettivo di permettere alle persone "di scrivere usando un formato testo semplice da scrivere e leggere e, opzionalmente, di convertirlo in XHTML (o HTML) strutturalmente valido”.[7]

Prendendo spunti dalle convenzioni esistenti per scrivere testo semplice nelle email, come setext, il linguaggio è stato progettato per essere leggibile così com'è, senza che sembri marcato con tags o istruzioni di formattazione[8], diversamente dal testo formattato con un linguaggio di markup come Rich Text Format (RTF) o HTML, che mostrano chiaramente istruzioni di formattazione.

Gruber ha scritto uno script in Perl chiamato Markdown.pl che converte un testo marcato in un XHTML o HTML ben formattato e sostituisce i segni di minore ('<') e la e commerciale con le relative entità. Può essere usato da solo oppure come plugin di Blosxom o Movable Type, oppure come un filtro di testo per BBEdit.[7] È distribuito con una licenza BSD.[3][9][10]

Da allora, Markdown è stato re-implementato da altri come un modulo di Perl disponibile su CPAN (Text::Markdown), e in vari altri linguaggi di programmazione.

Siti come GitHub, reddit, Diaspora, Stack Exchange, OpenStreetMap, e SourceForge usano varianti di Markdown per facilitare le discussioni fra gli utenti.[11][12][13][14]

Standardizzazione e CommonMark[modifica | modifica wikitesto]

Non esiste uno standard univocamente definito per Markdown, a eccezione dell'articolo originale di John Gruber e della sua implementazione che alcuni considerano una forma del cosiddetto abandonware.[15][16] Questo ha portato a una frammentazione del linguaggio dato che differenti produttori ne scrivono la propria variante per correggere errori o per aggiungere funzionalità non previste originariamente.

Dal 2012 fino al 2014, un gruppo di persone capeggiate da Jeff Atwood hanno portato avanti quella che Atwood ha descritto come uno "sforzo di standardizzazione".[17] Un sito web di comunità ora si prefigge l'obiettivo di "documentare vari strumenti e risorse disponibili, di documentare autori e sviluppatori così come implementatori delle varie implementazioni di markdown".[18] Nel settembre del 2014 Gruber ha obiettato sull'uso di "Markdown" nel nome di questo gruppo e del suo prodotto che per questa ragione è stato rinominato in "CommonMark".[19][20]

È anche disponibile uno strumento (chiamato Babelmark2[21]) che "confronta lo output delle varie implmentazioni" per "promuovere la discussione su come e se alcuni aspetti poco chiari delle specifiche di Markdown debbano essere chiarite".[22] Gruber ha fatto notare che una completa standardizzazione sarebbe un errore: "Siti (e persone) diverse hanno necessità differenti. Nessuna sintassi farebbe tutti felici."[23]

Presso la IETF è in corso la procedura per standardizzare lo Internet media type text/markdown, indipendente dalla sintassi. Si pianifica di sottoporre al IESG la Internet-Draft, draft-ietf-appsawg-text-markdown, nell'aprile 2015. La comunità che ruota intorno a Markdown è invitata a sottoporre proposte per guidare il processo di standardizzazione.

Estensioni[modifica | modifica wikitesto]

Una quantità di linguaggi di markup leggeri estendono Markdown implementando caratteristiche aggiuntive (come tabelle, note a piè pagina, liste di diefinizioni e Markdown all'interno di blocchi HTML) originariamente non disponibili con la sintassi di Markdown: esempi di questi linguaggi sono Markdown Extra, MultiMarkdown, Maruku,[24] Kramdown e l'estensione Pandoc.[25] In alcuni casi, questo ha lo scopo di permettere la conversione in formati alternativi al HTML come LaTeX, RTF e DocBook.

Molte implementazioni omettono intenzionalmente il supporto all'enfasi all'interno di parole. Nella implementazione originale di Markdown, un costrutto come my_long_variable è interpretato come una richiesta di aggiungere enfasi alle lettere "long" a metà della parola. Molti utenti trovano questo comportamento confusionale, per questa ragione molte implementazioni successive come PHP Markdown e Python Markdown non implementano questa caratteristica per impostazione di default.[26]

Lo scritto "Thoughts on Markdown" riporta che John Gruber, originale sviluppatore, non ha risposto alle discussioni a proposito delle estensioni a Markdown e dichiara "Markdown sta cambiando, con o senza di lui".

Esempi[modifica | modifica wikitesto]

Testo con sintassi Markdown Il codice HTML corrispondente generato da un processore Markdown Il testo visualizzato nel browser
 Heading
 =======
 
 Sub-heading
 -----------
  
 ### Another deeper heading
  
 Paragraphs are separated
 by a blank line.
 
 Leave 2 spaces at the end of a line to do a  
 line break
 
 Text attributes *italic*, **bold**, 
 `monospace`, ~~strikethrough~~ .
 
 A [link](http://example.com).
 <<<   No space between ] and (  >>>

 Shopping list:
 
   * apples
   * oranges
   * pears
 
 Numbered list:
 
   1. apples
   2. oranges
   3. pears
 
 The rain---not the reign---in
 Spain.
<h1>Heading</h1>

<h2>Sub-heading</h2>

<h3>Another deeper heading</h3>

<p>Paragraphs are separated
by a blank line.</p>

<p>Leave 2 spaces at the end of a line to do a<br />
line break</p>

<p>Text attributes <em>italic</em>, <strong>bold</strong>,
<code>monospace</code>, <s>strikethrough</s>.</p>

<p>A <a href="http://example.com">link</a>.</p>

<p>Shopping list:</p>

<ul>
<li>apples</li>
<li>oranges</li>
<li>pears</li>
</ul>

<p>Numbered list:</p>

<ol>
<li>apples</li>
<li>oranges</li>
<li>pears</li>
</ol>

<p>The rain&mdash;not the
reign&mdash;in Spain.</p>

Heading[modifica | modifica wikitesto]

Sub-heading[modifica | modifica wikitesto]

Another deeper heading[modifica | modifica wikitesto]

Paragraphs are separated by a blank line.

Leave 2 spaces at the end of a line to do a
line break

Text attributes italic, bold, monospace, strikethrough.

A link.

Shopping list:

  • apples
  • oranges
  • pears

Numbered list:

  1. apples
  2. oranges
  3. pears

The rain—not the reign—in Spain.

Editors[modifica | modifica wikitesto]

Per quanto Markdown sia un linguaggio a markup minimale, semplice da leggere e modificabile con un normale editor di testi, per tutte le maggiori piattaforme esistono editor specificamente progettati per visualizzare le anteprime con gli stili applicati. Inoltre esistono plugin per la syntax highlighting incorporati in emacs, gedit, e vim.

Implementazioni[modifica | modifica wikitesto]

Implementazioni di Markdown sono disponibili per molti diversi framework, piattaforme e linguaggi.

Test suites[modifica | modifica wikitesto]

Note[modifica | modifica wikitesto]

  1. ^ Daring Fireball Statement by creator John Gruber
  2. ^ Daring Fireball: Markdown, Web.archive.org. URL consultato il 25 aprile 2014.
  3. ^ a b Markdown: License, Daring Fireball. URL consultato il 25 aprile 2014.
  4. ^ Markdown, daringfireball.net, 4 dicembre 2013.
  5. ^ Pandoc - About pandoc
  6. ^ Markdown, su Aaron Swartz: The Weblog, 19 marzo 2004.
  7. ^ a b Markdown 1.0.1 readme source code Daring Fireball – Markdown, daringfireball.net, 17 dicembre 2004.
  8. ^ Markdown Syntax Daring Fireball – Markdown – Syntax, daringfireball.net, 13 giugno 2013.
  9. ^ MarsEdit 2.3 ties the knot with Tumblr support – Ars Technica, arstechnica.com. URL consultato l'11 agosto 2009.
  10. ^ Review: Practical Django Projects – Ars Technica, arstechnica.com. URL consultato l'11 agosto 2009.
  11. ^ GitHub Flavored Markdown, github.com. URL consultato il 29 marzo 2013.
  12. ^ Reddit markdown primer. Or, how do you do all that fancy formatting in your comments, anyway?, reddit.com. URL consultato il 29 marzo 2013.
  13. ^ Markdown Editing Help, http://stackoverflow.com. URL consultato l'11 aprile 2014.
  14. ^ SourceForge: Markdown Syntax Guide, sourceforge.net. URL consultato il 10 maggio 2013.
  15. ^ Jeff Atwood, Responsible Open Source Code Parenting, Codinghorror.com. URL consultato il 25 aprile 2014.
  16. ^ Trouble with parentheses in Markdown hyperlinks, Six.pairlist.net, 17 ottobre 2012. URL consultato il 25 aprile 2014.
  17. ^ Jeff Atwood, The Future of Markdown, Codinghorror.com, 25 ottobre 2012. URL consultato il 25 aprile 2014.
  18. ^ Markdown Community Page, Markdown.github.io. URL consultato il 25 aprile 2014.
  19. ^ Standard Markdown is now Common Markdown, Jeff Atwood. URL consultato il 7 ottobre 2014.
  20. ^ Standard Markdown Becomes Common Markdown then CommonMark, su InfoQ. URL consultato il 7 ottobre 2014.
  21. ^ Babelmark 2 - Compare markdown implementations, Johnmacfarlane.net. URL consultato il 25 aprile 2014.
  22. ^ Babelmark 2 - FAQ, Johnmacfarlane.net. URL consultato il 25 aprile 2014.
  23. ^ John Gruber, Twitter post, twitter.com. URL consultato il 6 settembre 2014.
  24. ^ Maruku
  25. ^ Pandoc Markdown, Pandoc. URL consultato il 7 ottobre 2014.
  26. ^ Markdown Discuss, Markdown-Discuss. URL consultato il 7 ottobre 2014.
  27. ^ Doxygen Manual: Markdown support, Stack.nl, 21 aprile 2014. URL consultato il 25 aprile 2014.
  28. ^ file 462 lines (396 sloc) 12.572 kb, rstudio/src/cpp/core/markdown/Markdown.cpp at master · rstudio/rstudio · GitHub, Github.com. URL consultato il 25 aprile 2014.
  29. ^ JetBrains Plugin Repository :: Markdown, Plugins.jetbrains.com. URL consultato il 25 aprile 2014.
  30. ^ nicoulaj/idea-markdown ¡ GitHub, Github.com, 1º dicembre 2013. URL consultato il 25 aprile 2014.
  31. ^ Writing on GitHub, su help.github.com, Github, Inc.. URL consultato il 9 luglio 2014.
  32. ^ Pandoc's markdown, johnmacfarlane.net. URL consultato il 5 agosto 2014.
  33. ^ Discount - a C implementation of the Markdown markup language, pell.portland.or.us. URL consultato il 1º novembre 2014.
  34. ^ Md2doc - Markdown2Html2Docbook XSLT 2.0 conversion tool, github.com. URL consultato il 25 novembre 2014.

Voci correlate[modifica | modifica wikitesto]

Linguaggi a marcatori leggeri simili:

Collegamenti esterni[modifica | modifica wikitesto]

Internet Portale Internet: accedi alle voci di Wikipedia che trattano di internet