Chaînes complexes
Introduction
Les chaînes de transformation complexes en Markdown complètent la génération statique vue dans la partie précédente.
L'objectif est de générer des textes plus conséquents et le format sortie est le plus souvent le PDF.
Il existe deux solutions pour générer un PDF à partir de Markdown, la première consiste à passer par un fichier HTML et la seconde par du LaTeX.
Remarque :
Le PDF disposant d'un style graphique, il faudra dans tous les cas utiliser un template (qu'il soit LaTeX ou HTML/CSS).
C'est un fichier qui va définir l'environnement dans lequel sera inclus le texte que l'on souhaite publier. Cet environnement définira par exemple le style du document : polices, marges, couleurs...
En passant par HTML
Les avantages :
le HTML est facilement manipulable
le style est très simple à mettre en place (fichier CSS)
la génération est peu coûteuse
mise en place simple (possible simplement avec un navigateur Web, même si des outils en ligne de commande permettent de le faire en ligne et ainsi d'automatiser le processus)
Les inconvénients :
pas de note en base de page
gestion des images lors de changement de pages
En passant par LaTeX
Les avantages :
LaTeX est un langage très puissant et qui permet de très bien structurer des documents destinés à être imprimés
LaTeX a un système de variable que l'on peux injecter depuis la commande de génération, ce qui permet de scripter la génération de document avec des paramètres
Les inconvénients :
LaTeX est lourd à mettre en place (beaucoup de paquets et extensions)
LaTeX est long à assimiler
Remarque : Besoin de plus de fonctionnalités
Comme nous souhaitons créer des documents plus complexes, il nous allons avoir envie d'afficher :
notes de bas de page
citations
références bibliographiques
tableaux
formules mathématiques
...
De nombreuses versions de Markdown existent pour répondre à ces besoins, nous pouvons citer la plus populaires et qui propose le plus de fonctionnalités orientés document complexes : MultiMarkdown
MultiMarkdown propose quelques fonctionnalités très intéressantes (et peu courantes dans les autres langages Markdown) :
transclusions de fichiers
customisation XSLT pour modifier le résultat de la transformation
Exemple : Mon expérience
J'ai réalisé mon rapport de stage d'IUT en Markdown. J'obtiens à la fin un rapport avec des exemples de code colorés, des tableaux, des images avec des légendes, des références, une table des figures...
J'ai utilisé Pandoc's Markdown et un template LaTeX personnalisé. C'est une expérience que je préfère de loin à rédiger entièrement un rapport en LaTeX.
Complément :
Markdown peut également être utilisé pour générer des documents EPUB ou même des supports de présentation.