Catégories
eBook

Écrire un ePub en Markdown

Ç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!