6 Créer un modèle Bookdown réutilisable
Lorsque tu construis un projet Bookdown bien structuré (avec un style, une organisation de chapitres, des fichiers YAML bien définis, etc.), il est naturel de vouloir réutiliser cette base pour d’autres livres, rapports ou travaux collaboratifs — sans repartir de zéro à chaque fois.
Heureusement, Bookdown et l’écosystème R offrent plusieurs moyens de créer un modèle réutilisable, aussi appelé template. Que tu sois un utilisateur individuel souhaitant gagner du temps, ou un enseignant ou responsable de projet souhaitant fournir un cadre à d’autres, tu peux facilement :
- Copier un dossier modèle déjà configuré
- Créer ton propre package R avec un squelette de livre
- Ou même proposer ton modèle directement dans l’interface de RStudio
Dans cette section, nous explorons trois approches complémentaires, de la plus simple à la plus professionnelle, pour créer un template Bookdown que tu pourras cloner, distribuer ou améliorer au fil du temps.
6.1 Créer un dossier modèle à réutiliser (version simple)
6.1.1 Objectif
Créer une base de projet Bookdown personnalisée que tu pourras réutiliser à chaque fois que tu veux écrire un nouveau livre ou rapport, sans repartir de zéro.
6.1.2 Etapes détaillées
6.1.2.1 Crée un dossier modèle
Dans ton ordinateur, crée un dossier que tu appelles par exemple :
bookdown_template/
Dans ce dossier, place tous les fichiers de base nécessaires à un projet Bookdown propre et prêt à être modifié :
index.Rmd
: le fichier d’introduction avec un bon YAML01-intro.Rmd
,02-contenu.Rmd
: des chapitres vides ou partiellement remplis_bookdown.yml
: où tu définis l’ordre des chapitres et le nom du livre_output.yml
: où tu précises les formats de sortie (HTML, PDF…)style.css
: une feuille de style pour personnaliser le HTMLpreamble.tex
: optionnel, pour personnaliser le rendu PDFbook.bib
: un fichier.bib
vide ou avec des références de base
Tu as ainsi un projet “modèle” tout prêt à cloner.
6.2 Transformer ton modèle en package R (avancé)
Tu peux créer un package R (pour plus de détail sur le procédé vous pouvez vous référer à l’exposé des camarades sur : la création de package sur R) qui contient un squelette Bookdown. C’est ce que fait le package usethis
pour les projets.
Voici un exemple d’approche avec le package bookdownplus
qui propose plusieurs modèles. Tu pourrais créer le tien ainsi :
Et y inclure une fonction comme :
create_my_book <- function(path) {
dir.create(path)
file.copy(system.file("template/index.Rmd", package = "bookdownTemplate"), file.path(path, "index.Rmd"))
# copier les autres fichiers...
}
Tu peux ensuite distribuer ce package (localement ou via GitHub), et l’appeler comme :
6.3 Créer un modèle RStudio (R Markdown template)
Si tu veux qu’un utilisateur de RStudio voie ton modèle dans File > New File > R Markdown > From Template
, tu peux créer un package avec un template Rmd enregistré.
Exemple :
- Crée un dossier
inst/rmarkdown/templates/monbook/
- Dans ce dossier, ajoute :
skeleton.Rmd
(le modèle du livre)template.yaml
(description)
Le fichier template.yaml
pourrait ressembler à :
name: Mon modèle Bookdown
description: Un modèle Bookdown personnalisé pour les rapports ENSAE
create_dir: true
Ensuite, en important ton package, le modèle apparaîtra dans les menus de RStudio
6.4 Créer un modèle RStudio réutilisable (R Markdown Template)
6.4.1 Objectif
Tu veux que quelqu’un puisse aller dans RStudio →
File > New File > R Markdown > From Template
et y trouver ton propre modèle de livre Bookdown dans la liste.
Quand il cliquera dessus, RStudio va automatiquement créer un nouveau projet avec tous les fichiers de ton modèle (index.Rmd
, _bookdown.yml
, etc.).
C’est exactement ce que font certains packages comme bookdownplus
ou rticles
.
6.4.2 Étapes pour créer ton propre modèle
Tu dois créer un package R qui contient ton modèle, puis le déclarer comme un template R Markdown.
6.4.2.1 Étape 1 – Créer un package R (vide)
Dans RStudio, fais :
Cela crée un dossier avec les fichiers de base du package R (DESCRIPTION, NAMESPACE, etc.).
6.4.2.2 Étape 2 – Créer le dossier du modèle R Markdown
Dans ton package, crée le chemin suivant :
MonModeleBookdown/
└── inst/
└── rmarkdown/
└── templates/
└── monbook/
├── skeleton.Rmd
└── template.yaml
skeleton.Rmd
: c’est le fichier de départ, comme unindex.Rmd
, avec tout ton modèle (YAML + contenu).template.yaml
: c’est le descriptif du modèle (nom, description…).
6.4.2.3 Contenu du fichier template.yaml
Voici un exemple très simple :
name: Mon modèle Bookdown
description: Un modèle Bookdown personnalisé pour les rapports ENSAE
create_dir: true
name
: le nom qui s’affichera dans RStudiodescription
: une petite phrase pour décrire ton modèlecreate_dir: true
: dit à RStudio de créer un dossier pour le projet (indispensable)
6.4.3 Résultat
Maintenant, dans RStudio :
- Va dans
File > New File > R Markdown
- Clique sur l’onglet
From Template
- Tu verras ton modèle
Mon modèle Bookdown
dans la liste - En cliquant dessus, RStudio génère un projet avec tous tes fichiers prêts à l’emploi
#️ Génération du rendu final
Une fois ton contenu rédigé et structuré, l’étape suivante consiste à compiler ton livre Bookdown, c’est-à-dire à générer le document final dans un ou plusieurs formats : HTML, PDF ou EPUB. Bookdown te permet de produire ces formats à partir des mêmes fichiers .Rmd
.
6.5 Compilation du livre
La compilation transforme les fichiers .Rmd
en un livre complet, avec :
- Table des matières
- Numérotation automatique des figures, tableaux, équations
- Références croisées, citations bibliographiques
- Fichiers finaux dans un dossier de sortie (par défaut :
_book/
)
6.5.1 Méthode 1 : via la console R
Tu peux lancer la compilation avec la commande suivante :
- Cela compile tous les fichiers
.Rmd
listés dans_bookdown.yml
- Le résultat est placé dans le dossier
_book/
6.5.2 Méthode 2 : via l’interface RStudio
Tu peux aussi utiliser l’interface graphique :
- Ouvre ton projet Bookdown
- Va dans l’onglet Build (ou
Ctrl + Shift + B
) - Clique sur Build Book
6.5.3 Compiler dans un format spécifique
Bookdown peut générer plusieurs formats. Tu peux cibler un seul format à la fois :
bookdown::render_book("index.Rmd", output_format = "bookdown::gitbook")
bookdown::render_book("index.Rmd", output_format = "bookdown::pdf_book")
bookdown::render_book("index.Rmd", output_format = "bookdown::epub_book")
Assure-toi d’avoir configuré ces formats dans _output.yml
.
6.6 Où vont les fichiers compilés ?
Par défaut, tous les fichiers générés sont placés dans un dossier appelé :
Tu peux changer ce nom dans _bookdown.yml
:
Ce changement est utile si tu veux publier sur GitHub Pages, qui lit le dossier docs/
.
6.7 Astuces utiles
- Si tu modifies un seul chapitre, utilise
bookdown::preview_chapter("02-chapitre.Rmd")
pour tester rapidement sans tout recompiler - Si tu travailles avec LaTeX, installe TinyTeX :
- Tu peux forcer le nettoyage du dossier de sortie avec :
A présent, tu sais comment produire un livre complet depuis tes fichiers .Rmd
.
Prochaine étape : le déploiement en ligne ou l’export pour diffusion !