Connaissez-vous le Markdown ?

Si vous n'avez jamais entendu parler du Markdown et que vous tapez souvent du texte pour diverses choses, cela pourrait bien vous intéresser. Si vous connaissez déjà, vous n'apprendrez probablement rien de plus.

Comment j'ai découvert le Markdown (ou la parenthèse je raconte ma vie ...) :

Quand j'ai commencé à bidouiller du site web, j'ai fait connaissance avec des fichiers ayant l'extension .md, souvent nommés Readme.md et s'ouvrant par défaut avec l'éditeur de texte basique. Ces fichiers contiennent généralement des informations utiles sous forme de texte agrémenté de quelques signes semblant ne pas servir à grand chose si ce n'est, peut-être, à faire joli (les connaisseurs, pas taper siouplait ce fut réellement ma première impression).

Un exemple :

Gros Titre
==========
- liste
- liste liste liste rage
**gras** _italique_
`code`
## Sous titre

Surtout curieuse de l'extension, j'avais cherché vite fait, appris que md correspond à markdown et m'était arrêtée là.

Quelle erreur !

curiosite-pas-vilain-defaut.png

Et puis courant de cet été, je me suis renseignée sur les générateurs de sites statiques, un truc qui semble être à la mode chez les blogueurs geeks.

J'ai un petit projet «de dans 2 ans» (qui n'est pas encore prêt de voir le jour si vous préférez) pour lequel une solution de type site web statique serait très bien. J'avoue, je me tâte aussi pour ce blog maintenant que j'en sais plus ...

pelican-venv.jpg

Il existe une flopée de générateurs de sites statiques, écrits dans des langages variés, à croire qu'il s'en développe un toutes les semaines - je vous laisse deviner lequel me fait de l'œil - mais ils ont un point commun : le contenu du site s'écrit souvent en Markdown.
C'est là que je suis retournée me renseigner un peu plus sur ce fameux Down, Mark Down (scusez l'humour foireux).

 

Et donc le Markdown c'est quoi ?

Markdown est une syntaxe légere et lisible pour formater du texte et le convertir facilement en HTML.

À la lecture de cette description, le plafond s'est illuminé, baignant ma douce chevelure d'une lumière blanche et pure.

Figurez-vous que pour écrire les descriptions des articles en vente dans ma boutique, j'avais pris l'habitude de tout préparer tranquillement hors ligne dans un éditeur de texte (Gedit) puis de faire un copier/coller dans l'éditeur WYSIWYG une fois connectée à l'administration de la boutique.
C'est là que c'était pénible : comme je n'avais pas envie d'écrire en HTML, je collais du texte brut et me retrouvais avec un vilain pavé à réarranger. Il fallait sélectionner les morceaux de texte et cliquer sur les boutons de l'éditeur pour mettre le gras, l'italique, séparer les paragraphes etc ... un truc vraiment pas passionnant.

Désormais, en utilisant le Markdown pour préparer mes textes, il est aisé et rapide de les convertir en HTML avant de les coller dans l'onglet code du wysiwyg, plus besoin de refaire la mise en forme à grands coups de clics.

J'ai même trouvé la perle des perles avec l'utilitaire xclip qui récupère le HTML dans le presse-papier, sur mon système Debian il me suffit de lancer cette commande dans un terminal :

markdown mon-texte.md | xclip -i

Et y'a plus qu'à coller dans l'interface WYSIWYG avec un clic molette. Trop fort ! Pas de retouche à faire, tout est nickel.

Mais qu'est-ce que j'en aurais gagné du temps si j'avais été curieuse jusqu'au bout il y a quelques années ...

 

Et si on n'aime pas trop utiliser la ligne de commande ?

Pas de problème ! Il existe une flopée d'éditeurs, pour Linux, Windows ou Mac, proposant des options toutes prêtes pour exporter le travail en HTML, PDF, etc ... avec en plus un panneau ou une fenêtre d’aperçu permettant de voir le rendu final.
De ceux que j'ai testé, j'ai bien aimé Notes-Up (celui-ci se comporte comme un cahier de notes) et Marker. Je préfère toutefois utiliser Gedit - auquel j'ai ajouté le greffon Gedit Markdown Preview (lien en bas de l'article) qui se bonifie à chaque nouvelle version - car il me sert pour d'autres choses.

 

La syntaxe du langage Markdown est vraiment simple à apprendre, facile à retenir. Ça m'a pris cinq minutes, allez peut-être 10 pour les trucs qui servent moins souvent.

Mais attention, tomber en amour avec Markdown n'est pas sans risque, il y a des effets secondaires. Je ne m'attarderais que sur le plus significatif : après quelques semaines à écrire en Markdown, ouvrir le moindre logiciel de traitement de texte me donnait des boutons.

Je n'ai jamais eu une grande affection pour les traitements de texte (j'en ai pourtant testés plein) mais c'est avec ça que je rédige bon gré mal gré les explications de mes modèles de crochet ou d'origami avant de les exporter en PDF.

Sauf que là LibreOffice Writer, même avec ses modèles et ses super styles, je n'en voulais plus.
Puis un de mes neurones s'est réveillé : «hé psst ... si Firefox sait transformer une page web en PDF ... c'est qu'il doit y avoir moyen de moyenner»
Markdown -> HTML + CSS -> joli PDF.
Je peux vous dire que le moteur de recherche à fumé tellement je l'ai fait chauffer pour trouver la solution.

 

Heureusement il y a Pandoc !

Pandoc permet de convertir du Markdown en plein d'autres langages mais surtout il peut générer des PDF avec, si besoin, une mise en forme de notre création, exactement ce que je cherchais. Pandoc enrichit également la syntaxe Markdown de quelques trucs bien pratiques.

J'ai donc ouvert la boite de Pandoc pour réaliser les 3 derniers tutoriels de crochet au format PDF publiés sur ce blog. Je trouve bien plus agréable d'écrire mes tutos avec mon éditeur de texte plutôt qu'avec LibreOffice. Pour la mise en forme j'ai couplé Pandoc avec wkhtmltopdf et une CSS de mon cru.
Nota : on peut aussi utiliser La Tex si on est adepte. Certains éditeurs permettent également d'ajouter une feuille de style personnalisée, souvent en s'appuyant sur Pandoc.

Avec cette méthode de travail je peux me concentrer sur le plus important : la rédaction du contenu. La mise en forme se fait toute seule à la fin en lançant la génération du PDF.

Bien sûr il faut prendre un peu de temps pour créer la feuille de styles de ses rêves mais si on maîtrise un minimum le CSS, c'est rapide.

Ma routine n'est pas encore parfaite et je viens de découvrir weasyprint qui permet plus de fantaisies que wkhtmltopdf, la pagination par exemple. J'essaierai d'écrire un tutoriel pour expliquer tout ça en détail lorsque j'aurai terminé ma phase de tâtonnements.

En conclusion, si vous tapez souvent du texte et devez le transformer sous différents formats, jetez un œil à Markdown et Pandoc. Le temps nécessaire pour apprendre à les utiliser n'est qu'une goutte d'eau en comparaison de l'océan de minutes que l'on gagne ensuite.

Liens utiles :