4  Introduction au yaml

4.1 Principes généraux

:GIT YAML

  • Il s’agit du header du document qui comprend toutes les métadonnées du document: titre, date, options de mise en page, options d’exécution….
  • La syntaxe du yaml est très sensible à l’intendation1. Les règles restent néanmoins assez simples.
  • Il s’agit du header du document qui comprend toutes les métadonnées du document: titre, date, options de mise en page, options d’exécution….il s’agit des différentes options entrant dans la partie <head> </head> du code source html.
  • La syntaxe du yaml est très sensible à l’intendation2. Les règles restent néanmoins assez simples.
  • Lors de la compilation, le yaml est le premier élément qui est évalué. En cas d’erreur elle sera stoppée quasi instantanément.

4.2 Balisage et commentaires

Balisage du yaml

En tête du code source du fichier .qmd, la zône du yaml est balisée par 3 tirets:

Zône pour les options du yaml
---
options du yaml
---

Les commentaires

Tout simplement avec #

4.3 Les Règles de retrait: intendation

  • Options
    • Si aucune autre option: On peut placer la première lettre ou l’on veut
OK


---
titre: "Le yaml"
---
OK


---
       titre: "Le yaml"
---
  • Si autres options: elle doivent toutes être alignées. Si la première option n’est pas sur le premier caractère de la ligne , la seconde commencer au même niveau.
Erreur


---
       titre: "Le yaml"
format: html
---
OK


---
       titre: "Le yaml"
       format: html
---
  • Sous options
    • Les sous options commencent au moins niveau du second caractère de l’option ou de la sous-option de niveau supérieur (option parente).
    • Il est d’usage de placer les sous options au niveau du troisième caractère (deux espaces)

Si les espaces sont indiqués par un .

Règles de retrait
---
option: 
..sous-option1: argument
..sous-option2: argument
....sous-sous-option21: argument
....sous-sous-option22: argument
---  

Exemple:

  • On veut ajouter un nom d’auteur/autrice: option author: "Bidibule
Ajout de deux options
---
title: "yaml d'un document"

author: "Bidibule"
---
  • Si on souhaite ajouter le lieu d’exercice, le nom devient une sous option de author et est renseigné avec la sous option name: "Bidibule". Sur le même principe le lieu d’exercice sera donné par l’option affiliation: "Bidibules inc".
Ajout de sous options
---
title: "yaml d'un document"

author:
  name: "Bidibule"
  affiliation: "Bidibules inc"  
---

Exemple 2: format hmtl et pdf

Le html est le format par défaut d’un notebook ou d’une présentation via le format reveal js. Si on veut indiquer explicitement le format html, c’est l’argument de l’option format. Si on veut ajouter des sous options au format html comme des thèmes (document, bloc de code) et/ou un autre format (pdf), sur le même principe que l’exemple précédent, html: devient une sous option de l’option format. Si on ne souhaite pas ajouter d’autres options pour la compilation en pdf, la sous option est renseignée par pdf:default. Elle se trouve sur le même niveau de retrait que html:.

Options pour deux formats
---
title: "yaml d'un document"

format: 
  html:
    theme: zephyr
    highlight-style: dracula
  pdf: default  
---    

Ce qui nous donne au final le template suivant:

Un yaml avec options et sous options
---
title: "yaml d'un document"

author:
  name: "Bidibule"
  affiliation: "Université X" 

format: 
  html:
    theme: zephyr
    highlight-style: dracula 
  pdf: default
---    

<!-- corps du document qmd -->

4.4 A savoir

Dans Rstudio

Si RStudio repère une erreur dans le retrait, une croix rouge apparaitra à droite du numero de ligne. Pratique.

Extension externe qui ne s’active pas

Il arrive que certaines options installées sous forme d’extension ne s’active pas après la compilation. C’est désagréable. Je n’arrive pas à expliquer pourquoi, mais le changement de position dans le yaml ou en ajoutant/supprimant une ligne vide entre cette option et une autre peut résoudre le problème… où alors on attend que cela finisse par fonctionner après plusieurs compilations.

Par rapport au yaml d’un projet

Le yaml du document à la priorité sur le yaml du projet: pas pour tout, mais on peut donc contredire des éléments de configuration qui sont dans le fichier _quarto.yaml dans un fichier .qmd.
Exemple: on active une table des matière pour chaque .qmd du projet dans _quarto.yaml (toc: true). On peut la supprimer dans un ou plusieurs fichiers .qmd avec toc:false dans le yaml du fichier.

Dans cette section on a juste regardé les règles de retrait des options. Dans le fichier de configuration les sous options peuvent prendre la forme de liens vers des fichiers .qmd comme les différents chapitres d’un book. La même règle est appliquée. A ce stade, juste pour information:

Exemple d'un fichier _quarto.yml

book:
  title: "Formation Quarto"
  chapters:
    - chap1.qmd
    - chap2.qmd
    - chap3.qmd

  1. qui se traduit ici par retrait↩︎

  2. On gardera le mot anglais, qui peut se traduire ici par retrait↩︎