Le Markdown est un balisage qui se lit à l'œil nu, et le format que les modèles de langage lisent le mieux. Le reStructuredText est le balisage dans lequel la documentation de Python est écrite. pandoc se tient entre les deux, et cette page dit exactement ce qui arrive à un fichier MD en route vers le RST.
Ce qui s'exécute quand un fichier MD devient un RST
pandoc en deux passes, sur une machine que nous louons et que nous surveillons. Votre fichier MD est envoyé une fois, pandoc s'exécute une fois, le fichier RST revient, et aucun des deux fichiers n'est conservé. MD vers RST fait partie des 3649 paires sur lesquelles ce moteur a été sondé avec un vrai fichier, et c'est pour cela que cette page existe quand celles que la sonde n'a pas su prouver n'existent pas.
Ce qui survit du fichier MD dans le fichier RST
La hiérarchie des titres. pandoc analyse le fichier MD vers son propre arbre de document et écrit cet arbre en RST, si bien qu'un titre de niveau deux reste un titre de niveau deux et non simplement du texte en gras.
Les tableaux, reconstruits en syntaxe RST plutôt que photographiés. C'est la différence entre un tableau qu'une machine sait lire et l'image d'un tableau, et c'est toute la raison de faire passer un fichier MD par pandoc plutôt que par une imprimante.
Les listes du fichier MD, imbrications comprises, plus les blocs de code, les citations et les liens, tous réexprimés en RST.
Les images : pandoc les extrait du fichier MD vers un répertoire de travail et les réintègre dans le RST, si bien que rien ne finit par pointer vers un fichier qui n'existe plus.
Ce que la conversion MD vers RST vous coûte
La couche de présentation. pandoc ne traduit pas le fichier MD en RST, il le reconstruit depuis son propre arbre de document : les styles personnalisés, la mise en page, les en-têtes et les pieds de page ne traversent pas. La structure, si, et c'est de cela que l'arbre est fait.
Si un modèle doit lire le fichier RST
La structure est ce qui subsiste du fichier MD, et la structure est ce dont un modèle a besoin. MD en entrée, RST en sortie, avec l'arbre des titres intact plutôt qu'aplati en un seul long paragraphe.
MD vers RST, mesuré plutôt que promis
En passant MD vers RST sur le moteur réel avec un vrai fichier, pandoc a écrit 289 octets au format RST en moins d'un dixième de seconde, machine par ailleurs au repos. C'est un fichier MD un jour donné et non une moyenne, et c'est pourquoi le nombre est donné avec le fichier qui l'a produit.
Le verdict MD vers RST a été obtenu par un aller-retour pandoc, c'est-à-dire que la sortie a été relue par pandoc et devait encore contenir un mot témoin planté dans la source, ce qui prouve que le contenu a voyagé et pas seulement le conteneur. Le contrôle employé compte, parce qu'ils ne prouvent pas tous la même chose, et un code de statut 200 ne prouve strictement rien sur ce que le fichier RST contient.
Le même fichier MD, envoyé ailleurs
Les autres sorties que la sonde a mesurées à partir d'un fichier MD, pour que le coût du choix du format RST se lise face à quelque chose. Les tailles ne se comparent pas d'un moteur à l'autre, chaque famille ayant été sondée avec son propre fichier témoin MD.
MD vers PDF : 25 764 octets en 1,9 secondes, vérifié par une signature de format.
MD vers DOCX : 10 106 octets en 0,1 secondes, vérifié par un aller-retour pandoc.
MD vers EPUB : 5 034 octets en 0,1 secondes, vérifié par un aller-retour pandoc.
MD vers TXT : 264 octets en moins d'un dixième de seconde, vérifié par la relecture du texte.
MD vers HTML : 4 018 octets en 0,1 secondes, vérifié par un aller-retour pandoc.
MD vers RTF : 687 octets en moins d'un dixième de seconde, vérifié par un aller-retour pandoc.
Ce que nous ne prétendrons pas sur MD vers RST
Un fichier MD de plus de 25 Mo est refusé avant la fin de l'envoi plutôt qu'après, pour que vous n'attendiez pas un refus.
Une conversion MD vers RST qui dépasse 60 secondes est tuée, et le processus pandoc avec elle. Une exécution abandonnée resterait posée sur l'un des deux cœurs de la machine jusqu'à ce que quelqu'un le remarque.
32 des 935 paires sondées dans la famille qui sert MD vers RST ont échoué, et celle-ci n'en fait pas partie. Elles échouent pour des raisons qu'il vaut mieux connaître : un rédacteur incapable de porter ce dont le document est fait, ou une sortie que le moteur n'a pas su relire. Elles sont comptées ici plutôt que cachées, parce qu'une paire qui échoue en silence est pire qu'une paire qui échoue bruyamment.
pandoc n'écrit jamais le RST en passant par un moteur TeX ici, et il n'écrit pas de PDF du tout : les onze moteurs qu'il lui faudrait ne sont pas sur cette machine, et une distribution TeX pèse plusieurs gigaoctets. Qui veut un PDF à partir d'un fichier MD passe par LibreOffice ou par calibre, qui en sont réellement capables.
Un fichier MD à la fois, choisi dans le navigateur. Il n'y a rien d'autre à régler et rien d'autre à proposer.
MD vers RST : les questions que l'on pose
Qu'est-ce qui convertit vraiment mon fichier MD en RST ?
C'est pandoc qui s'en charge, en deux passes, sur une machine que nous louons et que nous surveillons. Ni astuce de navigateur, ni service d'un tiers : le fichier MD est envoyé une fois, pandoc s'exécute une fois, le RST revient, et aucun des deux fichiers n'est conservé ensuite.
Combien de temps prend une conversion MD vers RST ?
Sur le fichier utilisé par la sonde, pandoc a mis moins d'un dixième de seconde et écrit 289 octets de RST. C'est une mesure réelle sur un fichier MD réel, pas une moyenne et pas une promesse sur le vôtre : un MD plus gros prend plus longtemps, et au-delà de 60 secondes l'exécution est arrêtée.
Qu'est-ce que je perds en passant du MD au RST ?
Celle qu'il faut connaître en premier : la couche de présentation. pandoc ne traduit pas le fichier MD en RST, il le reconstruit depuis son propre arbre de document : les styles personnalisés, la mise en page, les en-têtes et les pieds de page ne traversent pas. La structure, si, et c'est de cela que l'arbre est fait.
Les tableaux de mon fichier MD sont-ils encore des tableaux dans le RST ?
Oui. pandoc lit les tableaux du MD dans son propre arbre de document et les réécrit en syntaxe RST, si bien que vous obtenez un tableau qu'une machine sait analyser plutôt qu'une image de tableau.
La conversion MD vers RST est-elle gratuite ?
Il y a une franchise gratuite chaque mois, et une conversion MD vers RST coûte un demi-crédit dessus. Quand la franchise est épuisée, l'outil le dit et s'arrête, plutôt que de vous remettre discrètement un RST moins bon.