Markdown è un linguaggio di markup leggero e versatile, che si differenzia rispetto ad altri per la sua elevata leggibilità. Esso si basa su costrutti sintattici semplici, che non alterano significativamente la struttura del testo annotato. Grazie a questa caratteristica, i documenti markdown possono essere creati, letti e visualizzati con un semplice editor di testo, senza che questo richieda la comprensione di complessi tag come avviene nel caso di altri linguaggi di markup.
Storia
Markdown nasce nel 2004 dalla collaborazione tra Jonh Gruber e Aaron Swartz. Lo scopo che si prefiggono gli autori è quello di consentire a chi scrive contenuti di creare pagine web focalizzandosi sul testo piuttosto che sulla struttura di un documento HTML, dei tag e della relativa sintassi.
Oltre a definire la sintassi del linguaggio, Gruber pubblicò uno script in Perl, Markdown.pl, che permetteva di convertire un documento di testo formattato in markdown in un documento XHTML perfettamente valido. Successivamente, Markdown è stato reimplementato in un modulo Perl (Text::Markdown
), garantendone così una maggiore diffusione.
Sebbene sia sempre stato caratterizzato da una specifica informale, nel 2016 è stato ufficialmente standardizzato nella RFC7763, con tanto di tipo MIME text/markdown.
Diffusione
Oggi, Markdown è largamente utilizzato sul web come alternativa agli editor WYSIWYG. Piattaforme quali GitHub, Gitlab, Reddit, StackExchange e molte altre consentono agli utenti di utilizzare markdown per formattare i propri commenti, messaggi, ecc.
Pratica comune prevede che i documenti di README nei repository di progetti open source siano scritti in markdown. Ciò permette di arricchire il documento con una formattazione più chiara qualora esso possa essere visualizzato con uno strumento che interpreta la sintassi markdown, pur mantenendo un'ottima leggibilità nel caso in cui si apra con un semplice editor di testo.
Diversi generatori di siti statici, come ad esempio Jekyll, accettano in input documenti markdown, che vengono poi convertiti dal generatore in pagine web statiche.
Sintassi di Markdown
La sintassi di base è molto semplice, e consente di effettuare alcune semplici operazioni di formattazione, sia sul testo che sulla struttura del documento.
Testo
In markdown, i paragrafi sono separati da una riga vuota. Ad esempio:
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Si possono specificare attributi di formattazione quali grassetto, corsivo o specificare che si vuole usare un carattere a spaziatura fissa (molto utile, ad esempio, per inserire snippet di codice), semplicemente aggiungendo i caratteri **
(doppio asterisco), _
(underscore) e `
(apice inverso). Ad esempio:
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Come si può notare, il codice markdown risulta molto più leggibile di quello HTML, e permette di leggere il documento direttamente.
Intestazioni
Markdown supporta due livelli di intestazioni. Il primo si effettua "sottolineando" il testo con una serie di caratteri =
. Il secondo livello si effettua invece con il suffisso ##
. Ad esempio:
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Inoltre è possibile specificare una riga orizzontale con 3 o più trattini. Ad esempio:
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Liste
Markdown supporta sia le liste puntate che le liste numerate. Per le prime, basta usare il carattere *
. Le liste numerate invece possono essere specificate con il numero seguito ad un punto. Ad esempio:
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Immagini
Markdown permette di inserire immagini all'interno del documento. Ovviamente, queste non saranno visualizzate se si apre il documento con un semplice editor di testo.
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Collegamenti
Analogamente, è possibile inserire dei collegamenti ad altri documenti semplicemente indicandone l'URL:
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Estensioni
La sintassi standard di Markdown è stata arricchita nel corso del tempo per permettere di descrivere documenti dalla struttura più complessa con la semplicità offerta da questo linguaggio di markup. La specifica più nota è forse la Github Flavored Markdown (in breve GFM), sviluppata in casa GitHub. Essa aggiunge alcuni elementi interessanti, quali ad esempio tabelle, link automatici, task list, ed altre.
Ad esempio, in GFM è possibile creare una tabella come segue:
Codice Markdown | Codice HTML corrispondente |
---|---|
|
|
Rimanendo nell'ambito delle estensioni, è bene citare KaTeX, una potente libreria che permette di inserire, in un documento HTML, formule matematiche utilizzando la sintassi LaTeX. Utilizzando il sistema delle estensioni, è possibile includere codice KaTex in un documento Markdown, qualora lo strumento di conversione da Markdown a HTML lo supporti.
Come provarlo
Un ottimo modo per imparare ad utilizzare efficacemente la sintassi Markdown è di utilizzare un editor WYSIWYG. Vi consigliamo StackEdit, un editor Markdown completamente online che accetta testo Markdown nel pannello di sinistra e mostra un'anteprima della formattazione risultante nel pannello di destra.
Conclusioni
Markdown è sicuramente uno strumento molto potente, pensato soprattutto per chi scrive. Con Markdown, l'autore è libero di concentrarsi sul testo senza distrazioni sintattiche, pur mantenendo la possibilità di specificare la formattazione del proprio documento in modo semplice e veloce.