Skip to content

Instantly share code, notes, and snippets.

@NiccoMlt
Last active May 18, 2021 15:50
Show Gist options
  • Save NiccoMlt/0e7cee3f93f36c1f6c4970b0116fd8e6 to your computer and use it in GitHub Desktop.
Save NiccoMlt/0e7cee3f93f36c1f6c4970b0116fd8e6 to your computer and use it in GitHub Desktop.
Presentazioni in Markdown

Presentazioni in Markdown

Pandoc

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:

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 classi incremental o nonincremental permette di abilitare/disabilitare le liste incrementali;

    • è possibile rendere incrementale una lista anche inserendola in un blockquote con >;
  • tre punti separati da spazio . . . inseriscono pause nelle slide;

  • un blocco div con classe columns contenente uno o più blocchi div con classe column e un attributo width 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 esempio fragile;

  • 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.

Riferimenti Pandoc

Marp

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 _;
  • è 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 a bg;

  • è possibile utilizzare i propri stylesheet CSS: https://marpit.marp.app/theme-css

R Markdown

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).

Riferimenti R Markdown

Opzioni specifiche di ciascun formato di presentazione sono descritte nella guida ufficiale:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment