Convertitore da Markdown a HTML
Converti il Markdown in HTML pulito con anteprima live — titoli, elenchi, link, blocchi di codice e altro, tutto nel tuo browser.
1.102 visualizzazioni
Come Funziona
Questo convertitore segue la specifica CommonMark — una versione del Markdown definita con precisione, che risolve le ambiguità lasciate aperte dalla descrizione originale del 2004 (come interagiscono le liste annidate con i paragrafi "sciolti", cosa succede quando un marcatore si trova dentro una citazione, e così via). L'analisi avviene in due passaggi distinti. Il primo è a livello di blocco: il testo grezzo viene suddiviso in unità strutturali — paragrafi, titoli ATX (da # a ######), blocchi di codice recintati, citazioni, elenchi puntati e numerati, linee orizzontali — semplicemente leggendo la struttura delle righe e l'indentazione, senza ancora guardare cosa contiene ciascun blocco. Il secondo passaggio è a livello di riga: all'interno di ogni blocco, l'analizzatore cerca i marcatori di enfasi (*corsivo*, **grassetto**), gli span di codice inline (`codice`) e la sintassi di link o immagini ([testo](url)), riscrivendoli con i tag HTML corrispondenti. Questo design a due fasi spiega perché un asterisco all'interno di un blocco di codice recintato resta intatto — i blocchi di codice vengono completamente risolti nella prima fase, prima ancora che le regole di enfasi inline arrivino al loro contenuto.
Esempio: dato ## Note di Rilascio seguito da una riga vuota e da - **v2.1**: correzioni, l'analisi a livello di blocco individua per prima cosa un titolo e un elenco con un elemento; l'analisi a livello di riga trasforma poi **v2.1** in <strong>v2.1</strong> dentro il <li>. Le tabelle seguono l'estensione GFM (GitHub Flavored Markdown) costruita sopra CommonMark: una riga di intestazione, una riga separatrice --- il cui posizionamento dei due punti (:--, :-:, --:) determina l'allineamento della colonna, e un numero qualsiasi di righe di dati sottostanti.
Cosa Sapere
- L'HTML grezzo viene escapato, non eseguito — incollare un tag script o un gestore di eventi inline viene visualizzato come testo anziché essere eseguito, una scelta di sicurezza deliberata per contenuti incollati o non affidabili.
- Elenchi "sciolti" e "compatti" cambiano l'output — una riga vuota tra gli elementi di un elenco costringe CommonMark ad avvolgere ogni elemento nel proprio <p> (elenco "sciolto"); l'assenza di righe vuote mantiene gli elementi come contenuto inline semplice (elenco "compatto"), il che cambia la spaziatura verticale nell'HTML generato.
- L'annidamento molto profondo ha un limite pratico — quattro o più livelli di liste annidate o definizioni di link in stile riferimento sono CommonMark valido, ma sono casi limite meglio gestiti da un parser dedicato in fase di build che da un'anteprima live nel browser.
Domande Frequenti
Le tabelle sono supportate?
Sì, tramite l'estensione tabelle GFM (GitHub Flavored Markdown): una riga di intestazione, una riga separatrice ---, e un numero qualsiasi di righe di dati, tutte delimitate da pipe. Mettere i due punti a un'estremità o all'altra delle celle separatrici (:--, :-:, --:) imposta l'allineamento a sinistra, al centro o a destra per quella colonna — questa è un'estensione sopra il CommonMark di base, non parte della specifica originale.
Perché il mio tag HTML appare come testo invece di essere renderizzato?
È voluto. L'HTML grezzo nell'input viene escapato anziché passato direttamente all'output, così un tag <script> incollato o un attributo onclick appaiono come testo letterale invece di essere eseguiti — è proprio questo che rende sicuro incollare contenuti non affidabili. Scrivi l'equivalente in sintassi Markdown, oppure rimuovi manualmente l'escape in un secondo momento se ti fidi completamente della fonte.
La spaziatura delle righe segue esattamente le regole di Markdown?
Sì: una riga vuota tra righe di testo separa i paragrafi, e terminare una riga con due spazi finali prima dell'a capo produce un <br> invece di una nuova andata a paragrafo. Un singolo a capo nel mezzo di un paragrafo viene semplicemente unito alla stessa riga, esattamente come specifica CommonMark — questo è ciò che spiazza chi arriva da editor di testo semplice dove ogni a capo è significativo.
Perché la formattazione dentro un elenco annidato o un blocco di codice a volte appare inaspettata?
Perché l'analisi è a due fasi: la struttura a blocchi (liste, blocchi di codice, citazioni) viene risolta per prima, basandosi solo su indentazione e marcatori di riga, prima che qualsiasi formattazione inline (grassetto, corsivo, link) venga applicata dentro ciascun blocco. Il contenuto di un blocco di codice recintato non viene mai toccato dalla fase inline, quindi **questo** resta testo letterale lì invece di diventare grassetto — è un comportamento CommonMark previsto, non un bug.
Qual è la differenza tra il CommonMark di base e le funzionalità "GitHub Flavored"?
Il CommonMark di base definisce con precisione titoli, enfasi, liste, citazioni, blocchi di codice e link. Le tabelle, il testo barrato (~~testo~~) e le caselle delle liste di attività ([ ] / [x]) sono estensioni GFM aggiunte sopra — ampiamente supportate da convertitori come questo, ma non garantite in ogni implementazione strettamente CommonMark in cui potresti incollare l'output in seguito.
Strumenti Simili
Segnala un Problema
Convertitore da Markdown a HTML
Commenti
Ancora nessun commento — scrivi il primo!