Convertitore da HTML a Markdown
Incolla l'HTML qui sotto — il Markdown pulito appare all'istante. Nulla di ciò che incolli esce dal tuo browser.
Analisi DOM reale, seguita da un semplice attraversamento dell'albero
Questo strumento passa il tuo HTML a DOMParser —
lo stesso parser che il tuo browser usa per ogni pagina che
renderizza — invece di provare a scrivere a mano espressioni
regolari su testo HTML grezzo, che è esattamente il tipo di
approccio che si rompe non appena incontra markup reale con
annidamento insolito o tag non chiusi. Una volta ottenuto un
albero DOM corretto, lo percorre interamente in modo ricorsivo:
i tag di blocco come titoli, elenchi e citazioni diventano il
loro equivalente Markdown, i tag inline come grassetto,
corsivo, link e codice diventano la loro sintassi Markdown
inline, e il testo semplice viene mantenuto con gli spazi
bianchi ridotti come farebbe un browser. Consulta le domande
frequenti per sapere esattamente quali tag sono coperti e quali
restano deliberatamente fuori ambito.
Esempio pratico
Input:
<h2>Lista della Spesa</h2> <p>Non dimenticare il <strong>latte</strong> e il <em>pane</em>.</p> <ul> <li>Latte</li> <li>Pane</li> <li>Uova</li> </ul> <blockquote>Controlla il coupon prima di pagare.</blockquote>
Output:
## Lista della Spesa Non dimenticare il **latte** e il *pane*. - Latte - Pane - Uova > Controlla il coupon prima di pagare.
Domande frequenti
Questo strumento gestisce qualsiasi HTML gli venga passato?
Converte un sottoinsieme documentato e onesto — i tag che le persone usano davvero per i contenuti quotidiani: titoli (h1–h6), grassetto (strong/b), corsivo (em/i), link, immagini, elenchi puntati e numerati a un solo livello, citazioni, linee orizzontali, paragrafi e interruzioni di riga, oltre a codice inline e blocchi di codice delimitati (pre / pre > code). Non tenta di gestire tabelle, elenchi annidati, liste di definizioni o markup di impaginazione come div e span usati solo per lo stile — questi vengono saltati oppure il loro testo viene elaborato ricorsivamente senza aggiungere sintassi Markdown speciale. Per un post di blog, un articolo o un frammento di contenuto formattato, questo sottoinsieme copre la stragrande maggioranza dell'HTML reale; non è un compilatore generico da HTML a Markdown per pagine web arbitrarie.
Perché usa il DOMParser nativo del browser invece di un parser HTML scritto a mano?
Perché l'analisi dell'HTML è un problema genuinamente difficile già risolto correttamente, gratis, da ogni motore di browser. L'HTML del mondo reale è pieno di casi limite — tag non chiusi, regole implicite di chiusura dei tag, attributi senza virgolette, annidamento errato — per cui la specifica HTML definisce un comportamento di recupero preciso, proprio perché i parser scritti a mano tendono a sbagliarli in modo sottile. Questo strumento analizza con new DOMParser().parseFromString(html, "text/html") — lo stesso motore che il tuo browser usa per renderizzare qualsiasi pagina visiti — e poi percorre l'albero DOM risultante, già corretto. È una scelta ingegneristica deliberata: non reinventare qualcosa di notoriamente facile da sbagliare quando un'implementazione corretta è già lì, dentro il browser.
Il mio HTML viene caricato da qualche parte?
No. L'analisi e l'intero attraversamento dell'albero avvengono localmente, nel tuo browser; nulla di ciò che incolli viene trasmesso o salvato su un server. Questo vale per ogni strumento di questo sito, e qui conta particolarmente perché l'HTML che stai convertendo è spesso una bozza non pubblicata o contenuto preso da qualche parte che preferiresti non ricaricare altrove.
Cosa succede con un elenco annidato, come un <ul> dentro un <li>?
Resta onestamente fuori dall'ambito documentato di questo strumento. Questo convertitore gestisce in modo affidabile un livello di annidamento degli elenchi — un semplice ul o ol con figli li. Un elenco annidato dentro un elemento di un altro elenco non viene rilevato in modo specifico, quindi i suoi elementi vengono elaborati ricorsivamente come testo semplice invece di essere riprodotti come un elenco Markdown annidato correttamente indentato. Se ti serve una conversione perfetta degli elenchi annidati, questo non è lo strumento giusto; per gli elenchi piatti a un solo livello che la maggior parte dei contenuti quotidiani usa davvero, converte in modo pulito.
Conserva esattamente gli spazi bianchi e l'indentazione del mio HTML?
Solo dove dovrebbe. Al di fuori di <pre> e dei blocchi di codice, le sequenze di spazi bianchi nel testo — spazi extra, interruzioni di riga da codice sorgente formattato in modo leggibile — vengono ridotte a un singolo spazio, proprio come un browser renderizza il normale testo HTML; questo impedisce che l'indentazione del tuo HTML di origine si infiltri nel Markdown come interruzioni di riga estranee. Dentro <pre> o <pre><code>, il contenuto testuale originale viene letto e riprodotto esattamente, spazi inclusi, perché è proprio quel contenuto che un blocco di codice delimitato deve preservare.