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

  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.

Ressources