Pandoc è una libreria Haskell per convertire formati di markup tra loro.
Pandoc permette di utilizzare il linguaggio Markdown (e altri) per generare presentazioni nei seguenti formati:
- Microsoft PowerPoint
- LaTeX Beamer
- Slidy
- reveal.js
- Slideous
- S5: Simple Standards-Based Slide Show System
- DZSlides
Pandoc trasforma il documento in slide secondo queste regole:
-
una slide viene definita da una linea orizzontale (
___
o***
o---
) o da un heading a slide level; -
di default, lo slide level è il livello di heading più elevato immediatamente seguito da contenuto testuale; può essere configurato con il parametro
--slide-level
; -
un heading di livello inferiore allo slide level genera un titolo nella slide;
-
un heading di livello superiore allo slide level genera una "title slide", permettendo di definire delle sezioni;
- una title slide viene generata comunque a partire dal titolo del documento, se presente;
-
un blocco
div
(ossia compreso tra:::
) con classiincremental
ononincremental
permette di abilitare/disabilitare le liste incrementali;- è possibile rendere incrementale una lista anche inserendola in un blockquote con
>
;
- è possibile rendere incrementale una lista anche inserendola in un blockquote con
-
tre punti separati da spazio
. . .
inseriscono pause nelle slide; -
un blocco
div
con classecolumns
contenente uno o più blocchidiv
con classecolumn
e un attributowidth
permette di definire le colonne;-
sono possibili diverse opzioni, ad esempio:
:::::::::::::: {.columns align=center totalwidth=8em} ::: {.column width="40%"} contents... ::: ::: {.column width="60%" align=bottom} contents... ::: ::::::::::::::
-
-
utilizzando le classi per gli heading allo slide level (con la notazione
{``}
) è possibile specificare opzioni per i frame di Beamer, come ad esempiofragile
; -
nel blocco di intestazione contenente i metadati in formato YAML, è possibile specificare altre opzioni, come lo sfondo delle slide;
- è comunque possibile usare l'opzione
-V
per utilizzare configurazioni di reveal.js come i temi (eg.-V theme=moon
); - è comunque possibile caricare i propri temi con l'opzione
--css
.
- è comunque possibile usare l'opzione
- Manuale ufficiale: https://pandoc.org/MANUAL.html#producing-slide-shows-with-pandoc
- Making presentations with Pandoc
- Teaching slides with pandoc and reveal.js
- DevOps for Presentations: Reveal.js, Markdown, Pandoc, GitLab CI
- Automating Sprint Review Slides with Pandoc
Marp, ossia Markdown Presentation Ecosystem, è uno strumento basato su CommonMark per converire file Markdown in HTML, PDF e MS PowerPoint.
Può essere utilizzato tramite CLI con il pacchetto NPM @marp-team/marp-cli
, oppure tramite plugin per VS Code.
Il file sorgente .md
è definito con sintassi Marpit Markdown, che segue le seguenti regole:
-
una linea orizzontale (
---
o___
o***
o- - -
) seprara le slide; -
nel blocco di intestazione contenente i metadati in formato YAML, è possibile specificare direttive per tutto il documento, come il tema o la paginazione;
- è comunque possibile inserire direttive locali dalla singola slide in poi tramite commenti
<!-- -->
, o per la singola slide inziando l'opzione con_
;
- è comunque possibile inserire direttive locali dalla singola slide in poi tramite commenti
-
è possibile utilizzare
*
per le bullet list (anziché-
o+
) per definire liste incrementali; -
è possibile utilizzare la parentesi (eg.
1)
) anziché il punto (eg.1.
) per le ordered list per definire liste incrementali; -
è possibile specificare opzioni per le immagini all'interno dell'
alt text
della notazione standard per le immagini; ad esempio:![width:200px height:30cm](image.jpg)
-
sono supportati anche i filtri CSS, ad esempio:
![brightness:.8 sepia:50%](https://example.com/image.jpg)
-
l'immagine di sfondo è definita come un'immagine con
alt text
settato abg
;
-
-
è possibile utilizzare i propri stylesheet CSS: https://marpit.marp.app/theme-css
R Markdown è un pacchetto per R e basato su Pandoc e knitr
che permette di convertire file .md
ed .Rmd
in presentazioni nei seguenti formati:
La sintassi è molto simile a quella di Pandoc.
L'aggiunta più interessante rigaurda la possibilità di inserire dei cosiddetti "code chuncks" in R o in altri linguaggi supportati da knitr
(PlantUML con un pacchetto specifico, Python, SQL, Bash, JavaScript, CSS e altri) per generare contenuti da integrare nel documento in modo riproducibile a partire da codice (ad esempio grafici o tabelle).
Opzioni specifiche di ciascun formato di presentazione sono descritte nella guida ufficiale: