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. Quarto CLI est disponible pour Mac, Windows et Linux.
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.
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