Markdown è stato creato da John Gruber nel 2004 con un obiettivo unico ed elegante: scrivere testo semplice che si legga naturalmente, poi convertirlo in HTML pulito. Due decenni dopo è ovunque — file README di GitHub, descrizioni di pull request, messaggi Slack, documenti Notion, post di blog, risposte di chat AI. È uno di quegli strumenti che userete ogni giorno per il resto della vostra carriera, che ci pensiate consapevolmente o meno.
Cosa È Effettivamente Markdown
Markdown è testo semplice con una sintassi leggera e leggibile sovrapposta. Un # all'inizio di una riga diventa un <h1>. Racchiudere una parola in **doppi asterischi** la rende in grassetto. I backtick producono codice inline. La filosofia di design centrale è che il sorgente Markdown dovrebbe essere leggibile così com'è — anche prima di essere renderizzato. Se avete mai scritto un'email con *asterischi attorno all'enfasi* o usato i trattini per un elenco puntato, stavate già scrivendo qualcosa di molto vicino a Markdown.
Ecco un rapido confronto prima-e-dopo. Il Markdown a sinistra produce l'HTML a destra:
## Getting Started
Install the package with **npm**:
`npm install my-library`
Then import it in your project — see the [docs](https://example.com) for details.<h2>Getting Started</h2>
<p>Install the package with <strong>npm</strong>:</p>
<p><code>npm install my-library</code></p>
<p>Then import it in your project — see the <a href="https://example.com">docs</a> for details.</p>Voi scrivete la metà superiore; un processore Markdown produce la metà inferiore. Quel passo di traduzione è invisibile una volta nel vostro editor o pipeline CI.
Sintassi di Base — La Parte Condivisa da Ogni Variante
Qualunque variante di Markdown stiate usando, questi elementi di base funzionano ovunque:
- Intestazioni —
# H1,## H2,### H3(fino a sei livelli) - Grassetto e corsivo —
**grassetto**,*corsivo*,***entrambi*** - Link —
[testo del link](https://url.com) - Immagini —
 - Codice inline —
`backtick`racchiude uno snippet; tre backtick aprono un blocco di codice recintato - Citazioni — iniziare una riga con
> - Elenchi non ordinati — righe che iniziano con
-o* - Elenchi ordinati — righe che iniziano con
1.,2., ecc. - Riga orizzontale — tre o più trattini:
---
Ecco un frammento realistico di README che utilizza tutto quanto sopra insieme:
# json-transform
> A zero-dependency library for transforming JSON structures.
## Installation
```bash
npm install json-transform
```
## Usage
```js
import { transform } from 'json-transform';
const result = transform(input, schema);
```
## Features
- **Fast** — processes 10k objects/sec on average hardware
- *Typed* — ships with full TypeScript definitions
- Zero runtime dependencies
See the [full documentation](https://json-transform.dev/docs) for advanced options.
---
MIT LicenseIl Problema delle Varianti — CommonMark, GFM e Altre
Ecco il problema: "Markdown" non è una cosa sola. La specifica originale del 2004 di Gruber era intenzionalmente lasca, il che ha portato a anni di implementazioni incompatibili. Parser diversi gestivano i casi limite — elenchi annidati, righe vuote all'interno delle citazioni, precedenza tra enfasi e link — in modi diversi. Lo stesso file sorgente veniva renderizzato diversamente in strumenti diversi.
CommonMark (lanciato nel 2014) ha risolto questo problema. Un gruppo di sviluppatori — incluse persone di GitHub, Stack Overflow e Reddit — ha scritto una specifica rigorosa e non ambigua che copriva ogni caso limite con una suite di test di 652 esempi. La maggior parte degli strumenti moderni usa ora CommonMark come base.
GitHub ha poi esteso CommonMark con le proprie aggiunte e pubblicato GitHub Flavored Markdown (GFM). GFM è ciò che scrivete nei README, nelle issue e nelle pull request di GitHub. Molti altri strumenti hanno adottato le estensioni GFM, ma non tutti — quindi ciò che viene renderizzato su GitHub potrebbe non essere renderizzato allo stesso modo nel vostro generatore di siti statici o nell'app per prendere appunti. Sapere quale variante supporta il vostro strumento evita molti grattacapi.
Estensioni di GitHub Flavored Markdown
GFM aggiunge cinque funzionalità su CommonMark che userete costantemente su GitHub e qualsiasi strumento che supporta il superset GFM:
Tabelle — colonne delimitati da pipe con una riga separatrice di trattini:
| Method | Returns | Mutates? |
|---------|---------------|----------|
| map() | new array | No |
| filter()| new array | No |
| sort() | same array | Yes |Elenchi di attività — caselle di controllo nelle issue e nelle pull request:
- [x] Write unit tests
- [x] Update CHANGELOG
- [ ] Add migration guide
- [ ] Tag releaseTesto barrato — racchiudere il testo con doppie tilde:
~~deprecated API~~ — use `newMethod()` insteadBlocchi di codice recintati con suggerimenti di linguaggio — l'identificatore del linguaggio dopo i backtick di apertura attiva l'evidenziazione della sintassi:
```python
def parse_config(path: str) -> dict:
with open(path) as f:
return json.load(f)
```Autolink — gli URL nudi come https://example.com vengono resi automaticamente cliccabili senza bisogno della sintassi [testo](url). Questo è comodo nei commenti delle issue ma può essere sorprendente se incollate un URL che non volete linkato.
Dove Userete Markdown in Pratica
Markdown compare in più posti di quanto la maggior parte degli sviluppatori si aspetti al primo incontro:
- GitHub e GitLab — file README, issue, descrizioni di pull request, wiki e anche corpi dei messaggi di commit. Ogni repository che toccate avrà almeno un README.md.
- Generatori di siti statici — Jekyll, Hugo, Eleventy, Astro e Next.js accettano tutti file di contenuto Markdown. Scrivete i post in file
.mde il generatore li converte in pagine HTML al momento della build. - Strumenti di documentazione — MkDocs, Docusaurus e GitBook sono costruiti interamente attorno al sorgente Markdown. Le librerie open-source usano quasi universalmente uno di questi.
- App per prendere appunti — Obsidian, Notion, Bear e Typora usano tutti Markdown come formato nativo (con estensioni variabili). Le vostre note sono file di testo semplice portatili, non un database proprietario.
- Piattaforme CMS — Ghost usa Markdown nativamente. Contentful e Strapi supportano entrambi i campi Markdown. I setup CMS headless tipicamente memorizzano i contenuti in formato lungo come stringhe Markdown.
- Strumenti AI — ChatGPT e Claude emettono entrambi Markdown per impostazione predefinita. Snippet di codice, termini in grassetto ed elenchi puntati nelle risposte AI sono Markdown — l'interfaccia chat li renderizza, ma il testo sottostante è
**grassetto**e```python.
Markdown vs HTML — Quando Usare Quale
Markdown si converte in HTML, ma non può esprimere tutto ciò che HTML può. Non c'è equivalente per <div class="card">, attributi data-*, o attributi aria-*. Per contenuti in prosa semplice — documentazione, README, post di blog, changelog — Markdown è più veloce da scrivere e molto più leggibile nella sua forma grezza. Per componenti UI complessi, layout personalizzati o annotazioni di accessibilità che richiedono attributi specifici, avete bisogno di HTML.
La buona notizia: la maggior parte dei processori Markdown consente HTML grezzo inline. Potete mescolare i due. Se avete bisogno di un <figure> con un <figcaption>, o un widget di divulgazione <details>, scrivete semplicemente l'HTML direttamente nel vostro file .md. Il processore lo passa intatto. Usate questa via di uscita con parsimonia — se più di un terzo del vostro file è HTML grezzo, potreste anche scrivere direttamente HTML e usare il nostro Formattatore HTML per mantenerlo pulito.
- Usate Markdown per: documentazione, README, changelog, post di blog, articoli di knowledge base, campi di descrizione API
- Usate HTML per: layout precisi, componenti personalizzati, moduli, elementi che richiedono attributi specifici
- Mescolate entrambi quando: contenuto principalmente in prosa con alcune eccezioni strutturali (una tabella responsiva, un embed video)
Conclusione
Markdown è ingannevolmente semplice — sembra solo un po' di regole di punteggiatura, ma alimenta la documentazione di praticamente ogni grande progetto open-source. Capire la sintassi di base richiede circa dieci minuti. Capire le differenze tra varianti (CommonMark vs GFM vs quello che usa il vostro SSG) è ciò che distingue i developer che combattono occasionalmente con i loro strumenti di documentazione da quelli che non lo fanno.
I riferimenti autorevoli: CommonMark per la specifica standardizzata, GitHub Flavored Markdown per le estensioni GitHub, e Markdown Guide per un riferimento pratico con cheat-sheet. Per la scrittura quotidiana, la nostra Anteprima Markdown vi consente di vedere l'output renderizzato istantaneamente, e il Formattatore Markdown mantiene i vostri file sorgente coerenti.