Data Driven Documents

Author

Andrew Grogan-Kaylor

Published

April 22, 2025

1 Quarto

Quarto is an almost magical system that allows you to create documents in multiple formats. These documents may be driven by data, or contain no data whatsoever. With the click of a button, the same content–written in a simple format called markdown–can be written out (rendered) to multiple formats: HTML web pages; PDF documents; Microsoft Word documents, epub ebooks, HTML slide shows, and more.

These different document formats will be rendered using the most up to date data from the data source, meaning that documents can in some sense be self-updating. Additionally, if documents contain code, they provide an audit trail that allows for replicability and error detection.

Quarto allows rapid updating of timely content into multiple output formats.

flowchart LR

  %% node class definitions

 classDef yellow fill:#FDE725,stroke:#000000,stroke-width:2px,color:#000000;
  
 classDef blue fill:#2A788E,stroke:#000000,stroke-width:2px,color:#FFFFFF;
  
 classDef darkgreen fill:#22A884,stroke:#000000,stroke-width:2px,color:#000000;
  
 classDef lightgreen fill:#7AD151,stroke:#000000,stroke-width:2px,color:#000000;

 classDef lightpurple fill:#414487,stroke:#000000,stroke-width:2px,color:#FFFFFF;

 classDef purple fill:#440154,stroke:#000000,stroke-width:2px,color:#FFFFFF;
 
 markdown:::purple --> HTML:::yellow
 
 markdown --> PDF:::lightgreen
 
 markdown --> Word:::darkgreen
 
 markdown --> epub:::blue
 
 markdown --> revealjs:::lightpurple
  

One Source; Many Outputs

An example data driven document can be found below.

2 Output Examples

2.1 Major Formats

Note: HTML and Word are generally the easiest formats to generate. PDF requires your system to have the latest version of Quarto to make use of the typst typesetting system, which is only available with more recent versions of Quarto.1

2.2 Slide Show Format

Slide show formats can be beautiful and effective for presentations. However, slide show formats may not work equally well with all screen resolutions and sizes. Slide shows may have varying performance on mobile devices.

  • reveal.js Slide Show (Note that reveal.js is a 2 dimensional slide show format. As you scroll through the presentation, using ← and → will sometimes scroll left and right, but will scroll down when you come to a stack of vertical slides. Press o for an overview of the presentation.)

3 Quarto Source Code

Footnotes

  1. PDF’s can also be generated using the older, still standard, but somewhat cumbersome \(\LaTeX\) system.↩︎