Mdbook
Mdbook est un outil extraordinaire, il permet d’écrire quelque chose morceau par morceau et de l’assembler dans un livre. Il est extrêmement facile à utiliser, vous écrivez en markdown le contenu de chaque chapitre, puis vous écrivez le résumé et laissez mdbook faire le reste. Il produira ensuite un site web html en fonction du contenu. Vous pouvez également produire un vrai livre ou un ebook à l’aide de quelques plugins.
Laissez-moi vous montrer en détail comment cela fonctionne. Tout d’abord, initialisons le livre :
mathieu@Balder ~/book ❯ mdbook init mynewbook
Quel titre voulez-vous donner à votre livre ?
Mon nouveau livre Exemple
2024-06-13 09:21:20 [INFO] (mdbook::book::init) : Création d'un nouveau livre avec un contenu stub
Tout est fait, pas d'erreur...
mathieu@Balder ~/book ❯ ls
mynewbook
mathieu@Balder ~/book ❯ cd mynewbook/
mathieu@Balder ~/book/mynewbook ❯ ls
book book.toml src
Mdbook a créé un répertoire pour le contenu du livre, dans ce répertoire il y a deux dossiers et un fichier. Le fichier book.toml décrit les métadonnées du livre et les informations nécessaires pour construire le livre. Par défaut, il construira un site web html et utilisera le répertoire “src”.
mathieu@Balder ~/book/mynewbook/src ❯ ls
chapter_1.md SUMMARY.md
Dans le répertoire “src”, il y a deux fichiers, le sommaire et le premier chapitre. Le sommaire est la colonne vertébrale du livre, il décrit le contenu du livre.
mathieu@Balder ~/book/mynewbook/src ❯ cat SUMMARY.md
# SUMMARY
- Chapitre 1](./chapitre_1.md)
Par défaut, il n’y a qu’un seul chapitre. Je vais en ajouter un en ajoutant simplement une ligne dans le fichier de résumé.
mathieu@Balder ~/book/mynewbook/src ❯ echo "- [Chapitre 2](./chapitre_2.md)" >> SUMMARY.md
Je peux alors construire mon premier livre.
mathieu@Balder ~/book/mynewbook ❯ mdbook build
2024-06-13 09:32:38 [INFO] (mdbook::book) : La construction du livre a commencé
2024-06-13 09:32:38 [INFO] (mdbook::book) : Exécution du backend html
Mdbook m’informe qu’il construit le livre (un site html) en utilisant le backend html. J’ai maintenant un site web parfaitement fonctionnel dans le répertoire book.
mathieu@Balder ~/book/mynewbook/book ❯ ls
404.html chapitre_2.html favicon.png highlight.css print.html tomorrow-night.css
ayu-highlight.css clipboard.min.js favicon.svg highlight.js searcher.js
book.js css FontAwesome index.html searchindex.js
chapitre_1.html elasticlunr.min.js fonts mark.min.js searchindex.json
mathieu@Balder ~/book/mynewbook/book ❯ firefox index.html
Mdbook peut aussi générer dynamiquement le contenu de ce répertoire et ouvrir mon navigateur web.
mdbook serve --open
Il peut aussi effectuer le rendu sous forme de livre pdf en utilisant des extensions (j’ai utilisé mdbook-pdf pour cet exemple). Il m’a suffit d’installer mdbook-pdf et d’ajouter à mon fichier book.toml les paramètres nécessaires.
mathieu@Balder ~/book/mynewbook ❯ cat book.toml
[livre]
auteurs = []
langue = "en"
multilingual = false
src = "src"
[output.html]
[output.pdf]
mathieu@Balder ~/book/mynewbook ❯ mdbook build
2024-06-13 11:12:27 [INFO] (mdbook::book) : La construction du livre a commencé
2024-06-13 11:12:27 [INFO] (mdbook::book) : Lancement du backend html
2024-06-13 11:12:27 [INFO] (mdbook::book) : Exécution du backend pdf
2024-06-13 11:12:27 [INFO] (mdbook::renderer) : Invocation du moteur de rendu "pdf
Génération du PDF, merci de patienter...
PDF généré avec succès à : /home/mathieu/book/mynewbook/book/pdf/output.pdf
Mon livre est maintenant également disponible au format pdf dans le répertoire book/pdf/output.pdf