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) md è 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
[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!