Open Source

Come creare Slide e PDF da un sorgente Markdown

Nella mia attività di trainer ho spesso la necessità di avere della documentazione sia in formato “slide”, per la proiezione durante i miei corsi, e anche in formato “PDF”, da consegnare post-corso al cliente, per dargli la possibilità di usufruire degli appunti in maniera più leggibile.

Mantenere una versione separata sia delle slide che degli appunti è un lavoro troppo oneroso, inoltre anche creare slide con del codice sorgente che sia correttamente evidenziato è problematico.

Allora ho pensato: è se ci fosse un modo per convertire un sorgente Markdown sia in versione Slide che in versione PDF ? Bene, questo modo esiste ed è grazie a PanDoc!

Pandoc è un tool che permette di convertire da e verso molti tipi di formato.

In questo esempio vi dirò come io ho realizzato sia la conversione da Markdown a Reveal.JS, un tool per creare slide in HTML5 da pubblicare sia sul web che usare standalone; sia la conversione in un documento PDF.

Bene, il primo step è installare PanDoc da https://pandoc.org/ oppure in Linux lo avete già sicuramente disponibile come pacchetto ufficiale.

Il secondo step è creare un file Markdown. Se non conoscete Markdown potete studiarlo qui: su questa guida realizzata da GitHub.

Chiamate pure il vostro primo file prova.md.

Terzo e quarto step consiste nel personalizzare e lanciare i due script che vi fornirò qui di seguito.

Per ulteriori informazioni e approfondimenti vi lascsio al mio video che ho realizzato su questo argomento https://youtu.be/dwSxqZcyNzg

1) Script per convertire prova.md in prova.html con Reveal.Js

pandoc -t revealjs -s -V revealjs-url=https://revealjs.com \
--slide-level 2 \
-V transition=convex \
--highlight-style=zenburn \
-V theme=league \
--css custom.css \
-o prova.html prova.md


2) Script per convertire prova.md in prova.pdf

pandoc -s \
--slide-level 1  \
-V toc-title='Indice' \
--toc --toc-depth 1 \
-V geometry:portrait \
-V geometry:a4paper \
-V geometry:margin=2cm \
-V mainfont="DejaVu Serif" \
-V monofont="DejaVu Sans Mono" \
-V fontsize=12pt \
-V colorlinks:true \
-V linkcolor:red \
-V urlcolor:red \
--highlight-style tango  \
-o prova.pdf prova.md