Quarto
Introduction
Quarto est un système open-source de publication d'articles scientifiques et techniques basé sur Pandoc. Il permet d'exploiter différents langages de programmation tels que R, Python, Julia ou JavaScript. Il applique le même principe de programmation lettrée comme par exemple Rmarkdown, dont il représente une version plus moderne et facile à adapter à différents cadres d'utilisations. Quarto peut être utilisé en ligne de commande ou à travers d'autres logiciels comme RStudio ou Visual studio code.
Cet article s'intéresse principalement à l'utilisation de Quarto avec R dans le contexte de la pensée computationnelle avec R. Pour les autres langages, vous pouvez pour l'instant vous référez à la documentation du site officiel.
Installation
Quarto peut être installé de différentes manières, par exemple :
- En tant que logiciel qui s'active directement en ligne de commande. L'installation peut être nécessaire aussi pour les autres modalités d'utilisation.
- En tant que paquet R qui s'intègre avec le logiciel RStudio
- En tant qu'extension de Visual studio code
Logiciel en ligne de commande
Quarto CLI (Command Line Interface) est disponible directement depuis le site officiel pour Mac, Windows et Linux.
Une fois installé, Quarto CLI est disponible dans la ligne de commande directement en saisissant quarto
. Par exemple, pour créer un document en HTML on peut utiliser la commande :
quarto render hello.qmd --to html
Paquet de R
Pour l'installation dans R/RStudio, il faut d'abord installer le paquet avec :
install.packages("quarto")
À ce moment, on peut bénéficier dans l'interface de RStudio de différents projets et commandes à l'interface pour créer et transformer des fichiers Quarto dans d'autres formats d'output.
Pour plus d'informations, voir la page dédiée à RStudio dans le site officiel :
Extension de Visual studio code
Il existe également une extension de Visual studio code qui peut être installée directement depuis le gestionnaire d'extension du logiciel ou depuis le marketplace. Pour plus d'informations, voir la page dédiée à Visual studio code dans le site officiel :
Fonctionnement de Quarto
Quarto est basé sur un ou plusieurs fichiers avec extension .qmd
dont le contenu mélange des éléments narratifs écrits en Markdown et des aspects computationnels issus d'un langage de programmation comme R, Python, Julia ou JavaScript.
Le fichier source .qmd
est ensuite rendu dans un format de output qui peut être :
- Une page, un site ou un blog HTML5
- Un document/article PDF
- Une présentation PowerPoint ou Reveal.js
- Un document Word
- Un livre électronique comme un Epub
- ...
Le rendering se fait selon le type d'installation appliquée, c'est-à-dire depuis la ligne de commande ou les interfaces graphiques des logiciels comme RStudio ou Visual studio code.
Un document Quarto se divise en deux grandes parties :
- L'entête en YAML
- Le corpus avec les contenus du documents
Entête en YAML
L'entête du document contient des informations utiles pour le rendering du document, comme par exemple le format et les options d'output. L'entête est écrite dans un format de marquage appelé YAML qui correspond à une série d'associations clé:valeurs qui peuvent aussi être emboitées à plusieurs niveaux.
Voici un exemple de simple entête YAML :
---
title: "Titre du document"
author: "Mattia A. Fritz"
format: html
---
L'entête permet de définir beaucoup d'options qui dépendent étroitement du type de format envisagé. Les différents options sont disponibles dans une référence sur le site officiel de Quarto :
Corpus avec les contenus
Le corpus du document propose le mélange entre éléments narratifs et computationnels qui définissent le document finalisé. Voici un exemple tiré de la documentation officiel de Quarto qui propose un document complet aussi avec l'entête :
---
title: "Penguins, meet Quarto!"
format: html
editor: visual
---
```{r}
#| label: load-packages
#| include: false
library(tidyverse)
library(palmerpenguins)
```
## Meet Quarto
Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <https://quarto.org>.
## Meet the penguins
![](https://raw.githubusercontent.com/quarto-dev/quarto-web/main/docs/get-started/hello/rstudio/lter_penguins.png){style="float:right;" fig-alt="Illustration of three species of Palmer Archipelago penguins: Chinstrap, Gentoo, and Adelie. Artwork by @allison_horst." width="401"}
The `penguins` data from the [**palmerpenguins**](https://allisonhorst.github.io/palmerpenguins "palmerpenguins R package") package contains size measurements for `r nrow(penguins)` penguins from three species observed on three islands in the Palmer Archipelago, Antarctica.
The plot below shows the relationship between flipper and bill lengths of these penguins.
```{r}
#| label: plot-penguins
#| warning: false
#| echo: false
ggplot(penguins,
aes(x = flipper_length_mm, y = bill_length_mm)) +
geom_point(aes(color = species, shape = species)) +
scale_color_manual(values = c("darkorange","purple","cyan4")) +
labs(
title = "Flipper and bill length",
subtitle = "Dimensions for penguins at Palmer Station LTER",
x = "Flipper length (mm)", y = "Bill length (mm)",
color = "Penguin species", shape = "Penguin species"
) +
theme_minimal()
```
Le document source doit être ensuite rendu pour obtenir le format final. Dans ce cas, ce serait un document en HTML5 qui peut être ensuite publié sur le web.
Cadres d'utilisations de Quarto
Quarto peut être utilisé dans plusieurs contextes scientifiques et techniques. Ici nous proposons une brève liste avec des références directement dans la documentation officielle.
Documents générés dynamiquement
Ces documents appliquent des pratiques liées à la science ouverte en termes de transparence et documentation du processus en s'appuyant sur la computation. Les documents mélangent en effet des éléments narratifs avec des éléments qui sont calculés/crées automatiquement à travers des scripts/algorithmes qui peuvent être inclus ou incorporés par référence dans le document. De cette manière, le document finalisé peut être analysée dans une perspective de rétro-ingénierie pour savoir exactement comme il a été créé. Pour plus d'informations voir :
Créer des publications de qualité en différents formats
Quarto permet de créer des documents en différents formats en utilisant potentiellement le même fichier source. À travers la définition d'options de publication générales ou spécifiques au type de format envisagé, les documents finalisés peuvent être adaptés au niveau de la structure ou de l'esthétique.
Étant spécifiquement pensé pour les documents scientifiques et techniques, Quarto facilite l'intégration de contenus souvent utilisé dans ce contexte tels que :
- Les tableaux
- Les graphiques
- Les équations
- Les résultats d'analyse statistiques
- Les diagrammes
Ces contenus sont incrustées directement dans le document source et peuvent être modifiés directement à travers du code. De cette manière, il n'est pas nécessaire de copier/coller des éléments depuis d'autres logiciels ou devoir créer des images externes à incorporer ensuite dans le document.
Ressources
- Site officiel de Quarto
- Announcing Quarto, a new scientific and technical publishing system : post d'annonce de l'introduction de la technologie en 2022
- Beautiful reports and presentations with Quarto : vidéo d'environ 1h45 par Tom Mock
- Building a blog with Quarto : vidéo d'environ 1h15 par Isabelle Velàsquez