In questo articolo analizzerò alcune soluzioni automatizzate per convertire gli articoli di WordPress in formato Markdown.
Utilizza i metodi descritti per migrare il tuo sito WordPress verso un CMS compatibile con Markdown oppure per creare un backup dei tuoi articoli in un formato comodo e di facile lettura.
Convertire l’esportazione XML di WordPress con uno script
In questa sezione illustrerò un processo in due passaggi che prevede la generazione di un file XML da WordPress e l’utilizzo di uno script Node.js per produrre i contenuti in formato Markdown.
Generare un file XML con tutti i tuoi articoli WordPress
Segui questi passaggi per creare un’esportazione dei tuoi contenuti WordPress in formato XML. Questa funzionalità è integrata in WordPress e non richiede l’installazione di plugin aggiuntivi.
- Vai al menu Strumenti → Esporta
- Seleziona gli articoli che desideri esportare. Puoi scegliere di esportare tutti i contenuti oppure solo specifici tipi di post.
- Clicca sul pulsante Scarica file di esportazione
A questo punto disponi di un file XML con i contenuti selezionati. Nel passaggio successivo utilizzerai questo file come sorgente per lo script Node.js.

Eseguire lo script wordpress-export-to-markdown
Lo script Node.js in questione è wordpress-export-to-markdown, un codice specializzato in grado di generare file Markdown dai tuoi articoli WordPress, scaricare le immagini referenziate nei post e organizzare i contenuti in cartelle gerarchiche che riflettono il tipo di post, l’anno e il mese di pubblicazione.
Questo script richiede un ambiente con Node.js installato e un terminale da cui poter eseguire comandi di base. Installa Node.js seguendo le istruzioni presenti sul sito ufficiale. Il processo consiste semplicemente nel scaricare ed eseguire l’installer fornito.
Dopo l’installazione, verifica che tutto sia andato a buon fine eseguendo:
node -v
Puoi ora installare il pacchetto wordpress-export-to-markdown ed eseguire lo script con:
npx wordpress-export-to-markdown
Lo script avvia una procedura guidata nel terminale. Le tue risposte verranno utilizzate per configurare la conversione da XML a Markdown.

Vediamo nel dettaglio come rispondere alle varie domande della procedura guidata:
Path to WordPress export file?
Imposta qui il percorso del file XML appena scaricato. Per semplificare il processo, sposta il file XML nella stessa cartella in cui esegui lo script e inserisci semplicemente il nome del file.
Nel mio test, ho generato file Markdown da questo file exportato da WordPress:
example.WordPress.2022-09-20.xml
Path to output folder?
Specifica una cartella di destinazione personalizzata in cui salvare i file Markdown generati.
/home/danilo/Documents/output/
Create year folders? / Create month folders? / Create a folder for each post?
Queste tre risposte determinano la struttura gerarchica delle cartelle utilizzate per archiviare i file Markdown.
Prefix post folders/files with date?
Questa impostazione stabilisce se anteporre la data ai nomi dei file e delle cartelle generati.
Save images attached to posts?
Se abiliti questa opzione, lo script scaricherà tutte le immagini caricate nei tuoi articoli.
Save images scraped from post body content?
Rispondendo positivamente, lo script scaricherà anche le immagini referenziate all’interno dei contenuti, incluse quelle ospitate su siti esterni. Le immagini verranno salvate nella stessa cartella dell’articolo.
Include custom post types and pages?
In base alla risposta, lo script includerà o meno i file Markdown per i tipi di post personalizzati e per le pagine.
Il processo di conversione
Per garantire un processo di conversione corretto e il download delle immagini referenziate, assicurati di disporre di una connessione stabile, dei permessi di scrittura adeguati nella cartella di destinazione e di spazio sufficiente sul disco.
Se abiliti il download automatico delle immagini, l’esecuzione dello script potrebbe richiedere molto più tempo — anche diversi minuti o ore nei siti con migliaia di articoli — poiché ogni immagine viene scaricata singolarmente tramite richiesta HTTP al server.

Con la funzione di esportazione Markdown del plugin Ultimate Markdown
Ultimate Markdown è un plugin per WordPress che offre diversi strumenti dedicati al formato Markdown: un editor integrato, strumenti di conversione, funzioni di importazione ed esportazione e molto altro.
Informazioni generali sulla conversione da HTML a Markdown
Il plugin utilizza la libreria HTML To Markdown for PHP per convertire un documento HTML in Markdown.
La funzione di conversione da HTML a Markdown è disponibile nell’editor degli articoli per la conversione dei singoli post e in un menu dedicato per convertire collezioni di articoli.
Convertire un singolo articolo di WordPress in Markdown
Se stai migrando un sito di piccole dimensioni o desideri scaricare solo pochi articoli, puoi utilizzare la sezione Export Markdown presente nella barra laterale dell’editor, fornita dal plugin Ultimate Markdown.
Con questa funzionalità puoi creare la versione Markdown dell’articolo in modifica con un solo clic.

Convertire un gran numero di articoli WordPress in Markdown
Il plugin dispone di un menu dedicato per l’esportazione in blocco degli articoli di WordPress in formato Markdown.
Per utilizzare questa funzione, vai al menu Export del plugin, seleziona “Posts” come sorgente e clicca su Export Data.

Il plugin genera un archivio compresso (in formato zip) contenente i file Markdown nella cartella di download predefinita del browser. Estrai l’archivio per accedere ai documenti esportati.
Opzioni per utenti avanzati
Per gli utenti più esperti sono disponibili opzioni aggiuntive che consentono di selezionare i tipi di post, le categorie e i tag da esportare. Ad esempio, puoi esportare solo i post del blog, solo le pagine o esclusivamente gli articoli appartenenti a una determinata categoria (es. “News”).
Tieni presente che questo plugin non scarica le immagini referenziate nei post. Di conseguenza, potresti doverle scaricare manualmente tramite un client FTP, oppure utilizzare lo script wordpress-export-to-markdown descritto in precedenza.