Come evitare di creare codice HTML alla “razzo di cane”, a partire da un file docx

Andrea Borruso
mai più senza
Published in
3 min readMar 27, 2016

--

Qualche settimana fa ho pubblicato il tweet criptico di sotto, che adesso renderò più comprensibile.

Chi pubblica sul web spesso riceve testi che dovrà mettere online in qualche formato di office automation come il docx di Microsoft Office (ma anche doc, l’odt di OpenOfficd, ecc.), per cui sarà necessaria la conversione in HTML.

È roba di pochi click: basta salvare con nome e scegliere per l’appunto il formato HTML. Il problema è che il file prodotto in questo modo è spesso strabordante di tag, proprietà, classi, script, ecc., una ricchezza e una complessità che costringono a fare un noioso lavoro di pulizia e ristrutturazione. E tutte le volte che lo si fa, sembra di perdere un gran tempo.

Le cose peggiorano se il mittente ha formattato in modo “strano ”il testo: porzioni di testo in “Calibri” e altre in “Times New Roman”, un titolo di primo livello formattato come “Titolo 1” e un altro con la stessa gerarchia come “Titolo 2” (e magari ancora una volta con font diverso), porzioni di testo “giustificate” e altre “allineate a sinistra”. E non come scelta stilistica, ma per un uso dello strumento assolutamente improprio. L’output dell’export in HTML è in questi casi ancora più problematico.
A me capita spesso di ricevere file docx da trasformare in una pagina web o in una sua porzione, o magari in un testo di newsletter: tutte le volte che avviene un po’ mi mordo la lingua, perché so che dovrò armarmi di “trova e sostituisci” (viva le espressioni regolari) e pulire l’HTML di output.

Da un po’ di tempo però per fortuna ho trovato la soluzione, l’eccellente Pandoc. Si tratta di un “convertitore universale” di file di testo con cui è possibile gestire una gran quantità di formati: markdown, reStructuredText, textile, HTML, DocBook, LaTeX, MediaWiki markup, TWiki markup, OPML, Emacs Org-Mode, Txt2Tags, Microsoft Word docx, LibreOffice ODT, EPUB, Haddock markup, PDF. Non pone alcun tipo di barriera di utilizzo perché è open source e disponibile per tutti i sistemi operativi più diffusi.

Una volta installato, si esegue da riga di comando. Convertire un file docx in un file HTML caratterizzato da codice “asciutto” e pressoché immediatamente utilizzabile si realizza con questo comando:

pandoc -s input.docx -o output.html  --extract-media .

Alcune righe di commento:

  • -s per produrre un file HTML “standalone”, autoconsistente, con tutti i tag richiesti;
  • -o, seguito da un nome file, per indicare il nome del file di output;
  • — extract-media, per impostare la cartella di output per immagini (e altri media) eventualmente contenuti nel file di input. Nell’esempio di sopra è “.” e verrà creata una cartella “media” in corrispondenza del percorso in cui è eseguito lo script.

Pandoc fa molto, molto di più, ma questa cosetta ha reso spesso più leggeri alcuni miei momenti di lavoro, e magari tornerà utile a qualcun altro.

Nessun animale è stato maltrattato per la realizzazione di questo post (grazie Antonio per avermi ricordato di aggiungere la nota).

--

--

Andrea Borruso
mai più senza

#data #maps #GIS #baci #condivisione. Orgoglioso di essere presidente di @ondatait