Lizzie Crowdagger : le blog

Un blog avec de la fantasy urbaine, des lesbiennes, des vampires, des flingues et des motos
Home

Aller au menu | Aller à la recherche

Sortie de la version 0.14.0 de Crowbook, et petit retour d'expérience personnel

, 21:46

Logo du logiciel libre Crowbook, qui convertit du Markdown vers PDF, HTML et EPUBJe suis heureuse de vous annoncer la sortie de la version 0.14.0 de Crowbook.

Si vous souhaitez l’installer, le plus simple est de télécharger le binaire adapté à votre système d’exploitation (disponibles pour Linux, Windows, OS X et Free BSD).

Crowbook, c’est quoi ?

Crowbook est un logiciel libre (licence LGPL) qui convertit des livres écrits au format Markdown vers les format HTML, EPUB et PDF (en passant par LaTeX). Par rapport à d’autres équivalents, Crowbook essaie de faire un peu plus attention à la typographie, particulièrement française, et propose quelques fonctionnalités un peu particulières.

C’est ce que j’utilise maintenant pour la totalité de mes textes auto-édités, que ce soit pour la version disponible sur ce site, pour les fichiers vendus sur les plate-formes de vente en ligne, ou pour les impressions papier. Si vous voulez voir à quoi ça peut ressembler, vous pouvez regarder au hasard Pas tout à fait des hommes, en version PDF, HTML ou EPUB.

Ce n’est d’ailleurs pas pour rien que cette version 0.14.0 sort quelques jours après le dernier épisode de La chair & le sang : la publication d’un texte (avec ce qu’elle implique de relecture) est aussi l’occasion de vérifier que la dernière version du logiciel fonctionne à peu près correctement et de corriger quelques bugs.

Retour sur cette expérience

Vu que j’ai déjà parlé plusieurs fois ici de ce logiciel, je ne vais pas présenter son fonctionnement plus en détail (si vous voulez en savoir plus, consultez l’article précédent), ni m’attarder sur les nouveautés depuis la dernière fois (il y en a assez peu, essentiellement des modifications cosmétiques quand on exécute Crowbook ou l’ajout de la possibilité d’ajouter une dédicace). Je voudrais plutôt revenir sur pourquoi j’ai créé ce logiciel, l’expérience que j’en tire et le futur que je vois.

Pourquoi j’ai commencé ce projet

J’utilisais déjà le format Markdown pour écrire mes romans, mais à l’époque j’utilisais le convertisseur Pandoc pour transformer les fichiers sources au format HTML, EPUB et PDF. Si vous appréciez le format Markdown, je vous recommande d’ailleurs (si ce n’est pas déjà fait) de jeter un coup d’œil à ce logiciel, capable de convertir vers et depuis beaucoup de formats.

Malgré les qualités de Pandoc, il y avait quelques petites choses qui ne me satisfaisaient pas tout à fait :

  • j’aime bien séparer mes fichiers par chapitres ; c’est possible de le faire avec Pandoc en les concaténant, mais cela me posait parfois quelques soucis (par exemple chapitre_10.md se retrouvant avant chapitre_1.md) ;
  • peu de support des normes de typographie française, comme les différentes espaces insécables.

Par ailleurs, j’avais envie de créer un nouveau projet avec le langage de programmation Rust, parce que je trouvais ce langage intéressant. Cet aspect n’est pas négligeable : sans ça, je me serais contentée d’utiliser les petits work-arounds qui fonctionnaient jusque là.

Le Dogfooding comme guide de développement

Assez rapidement, j’ai réussi (grâce à l’existence de quelques bibliothèques existantes, notamment pour parser un fichier Markdown) à avoir une version à peu près utilisable pour mes besoins personnels, et j’ai commencé (sans difficulté) à passer de Pandoc à Crowbook pour certains livres, avant de le faire pour tous (les fichiers sources Markdown de tous mes textes publiés sous licence libre sont d’ailleurs visibles sur Github).

J’ai donc commencé à utiliser Crowbook au quotidien (enfin, sauf les jours où je n’écrivais pas). En informatique, c’est la notion de dogfooding : être la première utilisatrice des logiciels qu’on développe. C’est d’ailleurs ce qui a guidé (et guide toujours) le développement : j’ajoute les fonctionnalités dont j’ai besoin ou qui pourraient m’être utiles (et parfois celles que je pense être utiles à d’autres ou qu’on me demande si ça ne nécessite pas trop de boulot).

C’est sans doute pour ça que Crowbook a évolué de manière assez différente des autres convertisseurs Markdown qui existent à ma connaissance. En dehors du fait qu’il gère censément mieux (en tout cas je l’espère) la typographie française, il contient des fonctionnalités qui peuvent sembler incongrues pour ce type de logiciel :

  • un mode proofread qui génère une copie pour la relecture en pouvant détecter les répétitions dans le texte ou en utilisant un correcteur grammatical (LanguageTool et/ou Grammalecte) ;
  • un début de support pour écrire de la fiction interactive ;
  • la possibilité d’ajouter une dédicace via la ligne de commande.

À chaque fois, cela correspondait à un besoin ou une envie personnelle, dont je ne sais pas si elle sera vraiment utile à quelqu’un d’autre, mais pour lequel moi je vois un intérêt.

Bilan en tant qu’utilisatrice

Du coup, vu que j’ai créé ce projet avant tout pour moi (même si je suis évidemment très contente s’il est utilisé par d’autres !), quel bilan j’en tire en tant qu’utilisatrice ? Est-ce que ça m’a fait gagner du temps, est-ce que ça m’a aidé pour écrire ?

(En dehors, évidemment, du fait que le temps passé à programmer n’était pas consacré à écrire de la fiction ; mais je ne suis pas sûre que ça marche mathématiquement et que j’aurais écrit plus si je ne l’avais pas fait : en tant qu’écrivaine holistique, me lancer dans des projets annexes fait partie intégrante du processus d’écriture.)

Ma foi, ça n’a pas non plus bouleversé les choses ; cela dit, le fait de pouvoir relativement simplement lancer à la fois LanguageTool et Grammalecte sur le même texte a rendu la partie correction grammaticale un peu plus facile (même si ces outils sont imparfaits, comme je l’expliquais dans un billet sur ce sujet ; cela dit, le fait qu’ils ont tendance à ne pas exactement les mêmes erreurs, pouvoir lancer les deux en parallèle n’est pas inintéressant). Peut-être que le rendu en EPUB ou HTML est un peu meilleur, au moins en ce qui concerne la typographie (pour le reste, c’est assez subjectif).

Sinon, je pense qu’il faut être réaliste et ne pas exagérer l’apport d’un logiciel sur le travail d’écriture. C’est un outil, mais ce n’est pas ça qui va écrire à ma place ou quoi que ce soit. Au mieux, ça permet d’éviter un peu de friction au moment des conversions, mais cela reste de toute façon une partie assez faible du travail.

Bilan en tant que développeuse

C’est évidemment surtout en tant que développeuse que cette expérience a été intéressante : elle m’a emmenée à connaître un peu mieux un langage de programmation, mais aussi à développer un certain nombre de bibliothèques Rust utilisables séparément (epub-builder pour créer le fichier EPUB, crowbook-text-processing pour la partie « nettoyage typographique », ou encore crowbook-intl pour l’internationalisation du programme). Ça m’a permis de m’impliquer un peu plus dans cette communauté, et y compris de participer à la RustFest de Zurich (qui était une expérience formidable <3).

Surtout, chose à laquelle je ne m’attendais pas forcément au début, il semblerait qu’il y au moins quelques autres personnes qui utilisent Crowbook, et m’ont fait des rapports de bugs, des suggestions de fonctionnalités, voire carrément des contributions au code. C’est à la fois enthousiasmant, mais aussi un peu flippant (« oups il y a des gens qui ont peut-être en fait vraiment lu mon code source dégueulasse, et j’espère vraiment qu’il n’y a pas un bug qui efface le disque dur »), et en tout cas une expérience assez nouvelle.

Et le futur ?

Quand au futur de Crowbook, je n’ai pas forcément d’idées très précises. Je sais juste que (au moins pour un moment) je compte continuer à l’utiliser pour mes textes, et que ça impliquera sans doute la correction de quelques bugs l’ajout de nouvelles fonctionnalités au fil de l’eau. J’aimerais bien essayer de proposer une interface graphique mais je ne sais pas trop comment le faire et ça sort de mon domaine de compétences (non pas que le reste de Crowbook en faisait vraiment partie à la base, cela dit).

J’aimerais également sortir une version 1.0 dans pas trop longtemps, mais ça implique un peu de travail de nettoyage de code et de rédaction de documentation (notamment pour que celle-ci soit disponible aussi en français) avant.

Et puis, il s’agit d’un logiciel libre, et je suis évidemment ouverte aux contributions.

Bref, je vais continuer à m’occuper un peu de Crowbook, même si ce sera sans doute de manière moins intensive qu’à ses débuts, au moins pour mes besoins personnels. Et vous l’utilisez également et qu’il vous est utile, j’en serais très contente <3


Si vous aimez ce que j’écris (qu’il s’agisse de fiction ou de code), vous pouvez me soutenir en vous abonnant (à partir d’1€ par mois) sur Tipeee, et vous aurez en contrepartie accès à des textes inédits (et des zines à partir de 5€ par mois !).

Abonnez-vous sur : tipeee

Pour être tenu·e au courant de mes dernières parutions, vous pouvez vous inscrire à ma liste de diffusion (faible trafic, pas plus d’un message par mois) :

Crowbook, version 0.10.3

, 13:06

Comme ça fait quelques mois que je n'en avais pas parlé, je me suis dit qu'il pouvait être intéressant de faire un petit billet à l'occasion de la sortie de la version 0.10.3 de Crowbook.

Rappel

Pour rappel, Crowbook est un logiciel libre qui convertit des fichiers écrits au format Markdown vers du PDF, de l'HTML ou de l'EPUB. C'est ce que j'utilise maintenant pour la quasi-totalité des textes disponibles sur ce site.

L'intérêt du format Markdown pour des textes de fiction, c'est que c'est essentiellement du texte brut et qu'on peut taper à la chaîne sans se poser de questions : c'est le convertisseur qui s'occupe de tout. Si vous voulez voir à quoi ça ressemble, vous pouvez regarder le dépôt Github contenant mes textes publics, jouer avec la version de démo en ligne de Crowbook.

Il y a pas mal de convertisseurs Markdown qui existent. Si j'ai commencé à développer celui-ci, en plus d'une certaine envie de réinventer la roue, c'est parce que, bien souvent, ceux-ci ne géraient pas les règles de typographie française, comme ces (foutus) espaces insécables (j'avais d'ailleurs écrit un article sur ce sujet).

Comme j'ai déjà parlé de Crowbook dans différents billets de blog, un premier pour présenter ce logiciel et un second à l'occasion de la version 0.7.0, je ne vais pas revenir en détail sur le fonctionnement et plutôt me contenter de rappeler :

Quoi d'neuf, doc ?

Mais voyons plutôt les changements depuis la dernière fois que j'en ai parlé.

  • Il y a maintenant une version de démo en ligne, si vous voulez voir à quoi ça ressemble sans rien avoir à installer sur votre ordinateur.
  • J'ai enfin eu l'occasion d'avoir un PC sous Windows sous la main pendant les vacances, et j'ai pu tester un peu ce que ça donnait, donc maintenant les versions pour Windows devraient marcher à peu près (ce qui, hum, n'était pas trop le cas avant). Du moins, tant que vous n'essayez pas de générer du format EPUB (où vous aurez besoin de la commande zip) ou, pire, du PDF (où vous aurez besoin d'une installation fonctionnelle de LaTeX, ce qui d'après ce qu'on m'en a dit, vous fera entrer dans un monde de douleur pour l'installer comme il faut sous Windows).
  • Crowbook est maintenant traduit en français (mais pas encore le guide d'utilisation ; ça va venir, promis).
  • Niveau typographie, les apostrophes ' et les guillemets anglais " sont maintenant remplacés par leurs équivalents “typographiques” plus ‘jolis’. Et il y a une option, si vous galérez sur votre clavier pour taper les guillemets « français » ou les tirets cadratins (—) – ou semi-cadratins – pour pouvoir utiliser à la place les chaînes de caractères <<, >>, --- et -- (comme avec LaTeX).
  • Il est maintenant possible de générer des versions de relecture, qui peuvent souligner les répétitions et même utiliser un détecteur grammatical (ce qui vous demandera d'installer et de lancer LanguageTool). Bon, là on sort un peu du convertisseur Markdown et en pratique c'est un peu compliqué à utiliser, mais c'est des fonctionnalités que je trouve utiles en tant qu'écrivaine alors je me disais autant les y rajouter.
  • Des bugs corrigés, et sans doute de nouveaux bugs ajoutés. Pour plus de détails, vous pouvez regarder le ChangeLog.
  • Ah et il y a un logo, maintenant :

logo.png


Pour me permettre de pouvoir continuer à diffuser des textes (et des logiciels !) librement, vous pouvez vous abonner sur Tipeee à partir d'1€ par mois, ce qui vous donnera accès à mes prochains textes de fiction en avant-première.


Crowbook : un outil pour transformer un livre vers HTML, Epub et PDF

, 22:22

Grâce à l'argent que je gagne avec les ventes de mes livres, j'ai décidé d'embaucher une informaticienne indépendante pour qu'elle me fasse un logiciel adapté à mes besoins (et peut-être aux vôtres, sait-on jamais). J'ai donc le plaisir de vous présenter Crowbook, un outil pour transformer un livre écrit en Markdown en différents formats (HTML, EPUB, PDF, et en théorie ODT même s'il y a encore du boulot à faire pour ce dernier).

Pourquoi ?

Cela fait un certain temps que je suis passée au format Markdown pour écrire mes nouvelles et romans, parce que je trouve ça simple et efficace, puisqu'il s'agit essentiellement (du moins pour un roman) de texte brut, avec quelques balises pour les chapitres, le gras, etc.. Par exemple :

Chapitre 1
======

Un paragraphe dont un morceau est *en italiques*.

Cependant, la « chaîne » que j'utilisais avant me posait quelques soucis : c'était un peu compliqué (il y avait des tas de Makefiles partout, un scrpit qui preprocessait mes fichiers pour gérer les espaces insécables, etc.) et le résultat n'était pas toujours aussi customisable que je l'aurais voulu. Je voulais donc un outil :

  • où j'ai un fichier unique en entrée, qui établit différentes options pour le roman (son titre, sa langue, son fichier de couverture) et liste tous les fichiers Markdown qui constituent les chapitres ;
  • et qui me donne un résultat qui correspond à ce que je veux sans que j'ai besoin de passer cinquante options (s'il y a des options à passer, je veux les mettre une fois pour toutes dans le fichier de configuration).

Le résultat

Le résultat c'est donc Crowbook. Je n'ai pas encore eu le temps de passer tous mes textes sur cet outil (surtout que je voudrais en profiter pour corriger certaines choses sur un ou deux), mais vous pouvez déjà voir le résultat pour Pas tout à fait des hommes (HTML, PDF, EPUB, ODT).

Installer Crowbook

Crowbook est un logiciel libre (licence LGPL), donc vous pouvez l'utiliser librement, accéder à ses sources, les modifier, etc. Pour télécharger Crowbook, le plus simple est probablement de télécharger un exécutable précompilé :

(Si vous êtes sous Debian ou Ubuntu, vous pouvez maintenant aussi récupérer un ".deb" et l'installer avec sudo dpkg -i crowbook-0.4.0-1_i686.deb ; auquel cas, ignorez les instructions ci-dessous ^^)

(Vous pouvez également le compiler à partir des sources ; pour cela je vous invite à regarder la page Github du projet.)

Une fois que vous avez extrait le programme crowbook de l'archive, vous pouvez l'exécuter directement en vous plaçant dans le bon répertoire. Cela dit, vous voudrez peut-être l'installer dans un répertoire accessible par votre PATH pour pouvoir l'exécuter depuis n'importe où. il y a pour cela la méthode bourrin, qui nécessite les droits d'utilisateur root :

$ sudo cp crowbook /usr/bin

mais je recommande plutôt de l'installer dans votre répertoire HOME :

$ cp crowbook ~/bin
$ export PATH=–/bin/:$PATH

(la dernière ligne est à copier dans votre fichier .bashrc si vous ne voulez pas avoir à la retaper à chaque fois que vous ouvrez un terminal.)

Et voilà !

(Ces indications sont valables pour Linux et devraient être vraies aussi pour Mac OS X. Je ne sais pas comment on fait sous Windows, désolée.)

Utilisation

Pour initialiser un livre avec un certain nombre de fichiers Markdown:

$ crowbook --create mon_livre.book chapitre_*.md

Il faut ensuite éditer à la main le fichier mon_livre.book. Ce n'est pas si compliqué, celui pour Pas tout à fait des hommes se limite à ça :

author: Lizzie Crowdagger
title: Pas tout à fait des hommes
lang: fr
subject: fantasy

cover: couv/cover.png
epub.version: 3

output.epub: endr.epub
output.html: endr.html
output.pdf: endr.pdf
output.odt: endr.odt

- chapitre_01.md
- chapitre_02.md
...
- chapitre_15.md

ensuite, il suffit de faire

$ crowbook mon_livre.book

et roulez jeunesse ! (Il y a plus d'options, cela dit, mais pour plus d'informations allez voir la page GitHub).

Spécificités de Crowbook

Alors peut-être que vous êtes un peu rabat-joie et que vous vous dites « d'accord, tout ça c'est bien beau, mais il y a déjà des programmes qui font ça, celui il a quoi de particulier ? ». Ce à quoi je répondrai que, d'abord, il y a Crow dans le nom, ce qui fait que c'est quand même tout de suite beaucoup plus cool. Je veux dire, si vous avez le choix, dans une soirée un peu classe, entre dire « pour mes bouquins j'utilise Gitbook » et « pour mes bouquins, j'utilise Crowbook », vous préférez quelle version ?

Ensuite, crowbook essaie de prendre en compte les soucis de la typographie française (et peut-être d'autres langues dans un futur lointain), et notamment ces purée de @!#☠ d'espaces insécables à mettre avant '?', ';' ou encore '!'. À ma dernière poussée de rigidité typographique, je m'étais amusée à regarder sur quelques-uns des livres numériques que j'avais achetés, combien mettaient correctement des espaces fines insécables avant les signes de ponctuation double. Eh bien, il n'y en avait aucun. Sérieusement, il y en a qui vont pleurer parce que maintenant on peut écrire « nénufar » mais ça ne choque personne que dans des livres publiés, de la Littérature, oui Madame, on estime que « oh une espace fine insécable c'est trop dur à mettre j'ai qu'à mettre une espace insécable justifiante à la place » ?

Bon, j'ai bien conscience que ces histoires d'espaces fines insécables, d'espaces cadratins et compagnie, ça peut sembler abstrait et abscons, mais voici un exemple du rendu que ça peut donner pour les dialogues, où il faut normalement utiliser une espace de taille fixe (en l'occurrence cadratin) et non pas justifiante (dont la taille va varier pour que le texte soit aligné à droite). Dans un cas (à droite) on va avoir des débuts de dialogue alignés, c'est propre, c'est carré, dans l'autre les répliques ne sont pas alignées :

crowbook2.png

(Remarque : j'ai dû faire remonter un bug dans Crowbook aujourd'hui (en vérifiant le rendu de certains fichiers) puisqu'auparavant il affichait une espace fine insécable, ce qui « collait » les dialogues au tiret. Comme quoi essayer d'avoir une typographie correcte, ce n'est vraiment pas évident...)

Cave canem Caveat emptor

Crowbook est actuellement en version 0.4. Le numéro plutôt bas devrait vous mettre la puce à l'oreille : ce n'est encore pas très mature, il y a sans doute des bugs, etc. Par ailleurs :

  • le programme utilise la commande zip pour générer les fichiers EPUB, donc ça ne marchera pas si elle n'est pas installée sur votre système (même si ça me paraît peu probable ?) ;
  • de même, c'est latex qui est utilisé pour générer du PDF, et il est pour le coup moins improbable que ce logiciel ne soit pas installé sur votre machine.

Voilà, je crois que c'est tout pour le moment. Sur ce, je vais retourner m'atteler à la conversion de mes livres, en espérant ne pas trop découvrir de bugs !

(Billet mis à jour le premier mars 2016)