Quarto

De EduTech Wiki
Aller à la navigation Aller à la recherche

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 :

  1. 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.
  2. En tant que paquet R qui s'intègre avec le logiciel RStudio
  3. 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 :

  1. L'entête en YAML
  2. 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.

Ressources