Ça y’est, je crois que j’ai trouvé la meilleure méthode pour écrire un livre électronique: le markdown! Pour écrire un ePub en markdown, c’est simple et ça permet de l’exporter facilement en PDF et EPUB. Le top du top, c’est que le fichier EPUB est très bien fait et facilement compatible avec les liseuses. Ce que je n’arrivais pas à faire avec les autres logiciels pour écrire un ePub.
C’est quoi le Markdown?
Markdown, c’est un format d’écriture simple qui permet une mise en forme basique (voir la page Wiki). Voici à quoi ressemble un texte markdown:
**Ceci est un passage écrit en gras**, la suite ne l'étant pas. On peut aussi écrire en *italique*.
Ceci est un passage écrit en gras, la suite ne l’étant pas. On peut aussi écrire en italique.
Le Markdown est très restrictif. On ne peut pas faire n’importe quoi avec. Ce n’est pas si souple qu’un Pages ou Word. Mais ces restrictions le rendent idéal pour écrire un livre électronique ePub. Pas de surprise: le « peu » de chose que l’on peut faire avec le Markdown sera parfaitement retranscrit dans le livre électronique, dans une syntaxe très pure. Avec les autres logiciels, plus souples, j’ai toujours obtenu un rendu qui paraissant bien mais qui devenait très très mauvais dès qu’on changeait de lecteur ePub (Apple Livres, Google Play Livres, Kobo, etc.).
Quels logiciels pour écrire en Markdown?
Moi, j’utilise tout simplement Visual Studio Code. C’est ce que j’utilise pour programmer également.
Pour ma femme, je lui ai installer MacDown qui a l’avantage de montrer un rendu du code en temps réel. C’est plus agréable de travailler ainsi pour un non-technicien.
Comment organiser ses fichiers pour écrire un livre électronique en Markdown
En écrivant le livre en Markdown, on sépare un peu plus les images, de la mise en page, du texte. C’est tout l’inverse d’un éditeur WYSIWYG (What you see is what you get).
Les sources d’un livre électronique écrit en markdown ressemble donc à ça:
mon-livre/ -- images/ -- -- image1.jpg -- -- image2.jpg -- 01-chapitre1.md -- 02-chapitre2.md -- style.css -- metadata.yaml
On stocke les images dans un dossier spécial. On a un fichier md par chapitre. Enfin, on a un fichier configurant la mise en page style.css et un fichier contenant les méta-données du livre électronique metadata.yaml.
Finit le gros fichier de 200Mo contenant textes et images. A la place, on a un dossier image et plusieurs fichiers texte simple.
Comme les images sont dans un dossier distinct, il est très simple de les compresser efficacement. On se souvient que les images sont la principale sources de gains lorsque j’ai voulu compresser mon ePub.
Comment transformer du Markdown en ePub
Pour transformer un document Markdown en ePub, j’utilise le logiciel libre Pandoc. L’utilisation est très simple. D’abord, créer un fichier metadata.yaml avec les métadonnées du livre qui seront inclus dans le fichier ePub. Par exemple:
--- title: Mon super livre électronique pagetitle: Mon super livre électronique author: - Florian Guillaumin rights: © Florian Guillaumin, 2019 language: fr-FR ibooks: version: 1.4 cover-image: images/cover.jpg css: - pandoc.css - ebook.css ...
Ensuite, on génère le fichier avec la commande:
➜ ~ pandoc metadata.yaml *.md -o monLivre.epub
Après quelques secondes, le livre est prêt!
Comment transformer du Markdown en PDF
Pandoc sait le faire mais il y a mieux. En fait, le fichier crée par Pandoc est un peu moche. Il y a certain moyen de l’améliorer mais j’ai trouver un autre moyen: transformer le Markdown en une page web et « imprimer » cette page web en PDF. Pour imprimer en PDF, j’utilise le logiciel libre WkHtmlToPdf.
Les deux étapes sont donc:
➜ ~ pandoc metadata.yaml *.md -o monLivre.html --section-divs --self-contained ➜ ~ wkhtmltopdf monLivre.html monLivre.pdf
Le markdown, c’est pour moi la meilleure manière de gérer mes livres électronique. Et c’est encore plus maboule si vous utilisez Git et un CI/CD avec.
Par exemple, je gère les versions de mes livres sur GitLab. À chaque mise à jour, ça déclenche mon workflow automatique qui retaille les images (pour être compatible avec l’AppStore), crée le fichier ePub, vérifie le fichier ePub, crée le fichier PDF et si tout est bon, exporte même les nouvelles versions vers un dépôt S3. C’est depuis ce dépôt que les livres peuvent être téléchargés donc dès que je fais une mise à jour, elle est automatiquement disponible pour les utilisateurs dans les 10mn qui suivent: magique!