Transmettre un fichier html sans le répertoire *_html_libs

Quarto
Yaml
Auteur·rice
Affiliation

Marc Thévenin

Ined

Date de publication

10 juillet 2023

Résumé

Par défaut, tous les styles et les images associés à une page html générée avec Quarto sont enregistrés dans un répertoire distinct. Si on souhaite transmettre une simple page de résultats ou un descriptif de programme à ses collègues, on doit transmettre l’intégralité de ces fichiers. Avec l’option self_contained, la page html est générée proprement sans fichiers additionnels. Les éléments qui suivent ne doivent pas être appliqués à un contenu html plus enrichi comme un site, un book ou un blog.

Par défaut, en générant une simple page html de type notebook avec quarto, un répertoitre nomfichier_html_files est également créer.

Par exemple on génère le fichier .qmd, enregistré sous le nom default.qmd. Le répertoire default_html_files est également généré lors de la compilation en html de la page:

Le rendu, conforme aux attentes, est le suivant:

Si on souhaite déplacer le fichier default.html seul, le répertoire default_html_files le suivra. Même chose si on supprime le fichier html, le répertoire disparait également.

Ainsi, si on transmet seulement le fichier default.html, par exemple par mail, le rendu n’incorpera pas les éléments de styles et les éventuelles images présentes dans le répertoire.

Solution

Ajouter l’option self-contained= true au yaml (métadonnées) de la page


---
title: "html: self-contained"

format: 
  html: 
    self-contained: true
---

Le répertoire associé n’est plus généré lors du render, et tous les éléments qu’il comporte sont, comme sont nom l’indique, contenu dans la page html.

Remarque: la taille du fichier html est bien évidemment plus élevée. Avec ce court exemple 938ko avec l’option self_contained contre 22ko avec le répertoire associé.