Markdown
Cos’è Markdown?
Markdown è un linguaggio di markup sviluppato da John Gruber in collaborazione con Aaron Swartz nel 2004.
Riportiamo di seguito la traduzione (nostra) della definizione di Markdown fornita dallo stesso John Gruber:
Markdown è uno strumento di conversione da testo a HTML per scrittori web. Markdown ti permette di scrivere usando un formato di testo semplice facile da leggere e da scrivere, per poi convertirlo in XHTML (o HTML) strutturalmente valido.
Quindi, “Markdown” è due cose: (1) una sintassi di formattazione del testo semplice; e (2) uno strumento software, scritto in Perl, che converte la formattazione del testo semplice in HTML.
Il vantaggio del Markdown è di poter scrivere in testo semplice senza preoccuparsi delle formattazioni e quindi senza distrazioni, posto che con i “markup” si può arricchire il testo in qualsiasi momento.
Ci proponiamo di pubblicare in questa pagina (che sarà in continuo aggiornamento) i principali comandi Markdown.
Il logo Markdown (The Markdown Mark) è stato progettato e realizzato da Dustin Curtis (https://dustincurtis.com) con il contributo di Mac Tyler (http://mactyler.com).
CommonMark
Il progetto CommonMark nasce perché la descrizione della sintassi di Markdown creata da John Gruber non è specificata in modo univoco.
In effetti, manca una specifica unica del Markdown e ciò ha determinato nel corso degli anni implementazioni diverse, tanto che non tutti gli editor sono in grado di riprodurre il linguaggio in modo univoco.
Per questi motivi, John MacFarlane (lo sviluppatore di Pandoc), Martin Woodward e Jeff Atwood - che si definiscono un gruppo di fan di Markdown - hanno deciso di creare il progetto CommonMark che abbia come finalità la definizione di una sintassi unica di Markdown.
Riportiamo (la traduzione è nostra) quanto riportato sul sito di CommonMark:
Non c’è una suite di test standard per Markdown; MDTest è la cosa più vicina che abbiamo. L’unico modo per risolvere le ambiguità e le incoerenze di Markdown è Babelmark, che confronta l’output di oltre 20 implementazioni di Markdown l’una con l’altra per vedere se emerge un consenso.
Noi proponiamo una specifica di sintassi standard e non ambigua per Markdown, insieme ad una serie di test completi per validare le implementazioni di Markdown rispetto a questa specifica. Crediamo che questo sia necessario, persino essenziale, per il futuro di Markdown.
Il progetto è davvero meritorio per chi considera Markdown una risorsa importante.
Auspichiamo che gli sviluppatori, specialmente quelli che si occupano dello sviluppo di editor Markdown, possano fare riferimento alle specifiche CommonMark per avere una sintassi Markdown unica.
Mermaid
Per Mermaid si veda questo post.
Sintassi Markdown
Intestazione H1:
# Intestazione H1
oppure
Intestazione H1
===============
Intestazione H2:
## Intestazione H2
oppure
Intestazione H1
---------------
Intestazione H3:
### Intestazione H3
Intestazione H4:
#### Intestazione H4
Grassetto
**grassetto**
oppure
__grassetto__
Corsivo
*corsivo**
oppure
_corsivo_
Barrato
~~barrato~~
Evidenziato
==evidenziato==
Apice
N^4^
oppure
N<sup>4</sup>
Pedice
H~2~O
oppure
H<sub>2</sub>O
Link
[text](https://domain.com)
oppure
[text][1]
[1]: (https://domain.com)
oppure
<https://domain.com>
se si intende aggiungere un attributo
[text](https://domain.com "Scrivere qui per attributo")
Mailto
<name@domain.com>
Immagini
![testo](https://domain.com/image.jpg)
oppure
[testo][1]
[1]: (https://domain.com/image.jpg)
oppure (centrata)
![testo](https://domain.com/image.jpg#center)
oppure (con descrizione)
![testo](https://domain.com/image.jpg "Descrizione")
Citazioni (Blockquotes)
> citazione
oppure annidata
>> citazione annidata
Elenco puntato
* Punto
* Punto
* Punto
oppure
- Punto
- Punto
- Punto
oppure
+ Punto
+ Punto
+ Punto
Elenco numerato
1. Primo
2. Secondo
3. Terzo
oppure
1) Primo
2) Secondo
3) Terzo
oppure
1. Primo
1. Secondo
1. Terzo
Lista ’to do'
- [x] da fare 01
- [ ] da fare 02
- [ ] da fare 03
Linea orizzontale
*** (tre asterischi consecutivi)
oppure
--- (tre trattini consecutivi)
oppure
___ (tre underscore consecutivi)
Codice ‘in line’
`codice inline`
oppure
codice (rientro di 4 spazi)
Blocco di codice
```
blocco di codice
ABC
ABC
```
oppure
~~~
blocco di codice
ABC
ABC
~~~
oppure (scrivere con rientro di 4 spazi)
abc
abc
abc
oppure
```python
print(f"2+2 = {2+2}")
```
Tabelle
| Colonna1 | Colonna2 | Colonna3 |
| -------- | -------- | -------- |
| Uno | Due | Tre |
| Quattro | Cinque | Sei |
Note a piè pagina (Footnote)
Testo a cui apporre la nota[^1]
[^1]: testo della nota
oppure
Testo a cui apporre la nota[^etichetta]
[^etichetta]: testo della nota
Si tratta di un work-in-progress e quindi la pagina potrebbe subire aggiornamenti
Stay tuned!