Fichiers Markdown : du texte brut avec des conventions, et il en existe plusieurs
Ce qu’est un fichier .md, pourquoi les moteurs de rendu divergent, et comment titres et listes sont reconstruits depuis un PDF qui n’en a pas.
En bref
- Type
- Documents
- Extensions
- .md, .markdown
- Type MIME
- text/markdown
- Également appelé
- MD
Un fichier .md est un fichier texte. Pas de conteneur, pas de compression, rien de binaire — ouvrez-en un dans le Bloc-notes et vous voyez exactement ce qu’il contient. La mise en forme relève de la convention plutôt que du balisage : un # en début de ligne signifie un titre, un tiret un élément de liste, et un moteur de rendu qui connaît la convention les transforme en HTML. C’est toute l’idée, et c’est pourquoi le format a survécu à tous les éditeurs de texte enrichi de sa génération : le fichier est lisible avant tout rendu, et il le restera quand l’outil avec lequel vous l’avez écrit aura disparu.
Lire la suite
La complication, c’est qu’il n’existe pas un seul Markdown. L’implémentation d’origine, en 2004, laissait un grand nombre de cas indéfinis, que chaque moteur de rendu a tranchés à sa manière ; CommonMark existe pour lever ces ambiguïtés, et GitHub Flavored Markdown ajoute par-dessus les tableaux, les listes de tâches et le texte barré. La situation est officiellement reconnue : lorsque text/markdown a été enregistré comme type de média par la RFC 7763 en mars 2016, l’enregistrement comportait un paramètre « variant », précisément parce que dire qu’un fichier est du Markdown ne dit pas de quel Markdown il s’agit. Ce site produit du text/markdown en UTF-8, et n’utilise que les constructions sur lesquelles tous les dialectes s’accordent — titres avec dièse, paragraphes séparés par une ligne vide, puces en tiret et filets horizontaux.
Convertir un PDF en Markdown, c’est fabriquer une structure que le PDF n’a jamais eue. Un PDF enregistre des tailles de caractères, pas des titres : les tailles présentes sur la page sont donc classées, et les six plus grandes deviennent les six niveaux de titre ; une ligne simplement plus grande que le corps du texte devient un titre, que l’auteur l’ait conçue comme tel ou non. Les listes sont pires : le PDF n’a aucune notion de liste, et la puce que vous voyez est littéralement un caractère du texte, si bien que la seule façon de préserver une liste est de reconnaître ce caractère et de le réécrire en tiret. Les éléments numérotés n’ont pas besoin de cette aide — « 1. » et « 1) » sont déjà du Markdown, et désignent déjà une liste.
Deux détails méritent d’être connus, car ils modifient le texte lui-même. Une ligne terminée par un trait d’union est traitée comme un mot coupé en fin de ligne, et recollée sans ce trait ; et les lignes consécutives de chinois ou de japonais sont jointes sans espace, car ces écritures n’en mettent pas. Les pages sont séparées par un filet horizontal : un document de treize pages en contient douze. Si le PDF est un scan sans couche de texte, le même modèle de reconnaissance que pour PDF en Word lit d’abord les caractères sur les images des pages, sur votre propre machine.
Convertir d’autres formats en Markdown
FAQ : Markdown
Un fichier .md est-il simplement un fichier texte ?
Oui. Pas de conteneur, pas de compression, rien de binaire. N’importe quel éditeur de texte l’ouvre, et les marqueurs — #, -, ** — sont des caractères ordinaires que l’on peut lire tels quels.
Quelle variante de Markdown obtient-on ?
Uniquement ce sur quoi tous les dialectes s’accordent : titres avec dièse, paragraphes séparés par une ligne vide, puces en tiret et filets horizontaux. Rien ici ne dépend d’une extension GitHub ou CommonMark : le rendu est le même partout où vous le collez.
Pourquoi des lignes de tirets traversent-elles mon document ?
Ce sont les sauts de page. Chacun est un filet horizontal qui marque la fin d’une page du PDF et le début de la suivante : un document de treize pages en contient douze.
Un titre est sorti au mauvais niveau. Pourquoi ?
Les niveaux sont classés selon la taille des caractères, car un PDF stocke des tailles et non des titres. Quand un document utilise la taille pour mettre en valeur plutôt que pour hiérarchiser — une citation en exergue, une première ligne en grand —, le classement suit la taille et se trompe de niveau.
Les tableaux sont-ils conservés ?
Les tableaux tracés avec des filets, oui : ils deviennent des tableaux Markdown, la première ligne servant d’en-tête. Les tableaux d’une page scannée sortent en lignes ordinaires, car un scan n’a pas de filets à lire. Si les tableaux sont la seule raison de la conversion, PDF en Excel place chacun dans des lignes et des colonnes exploitables.
Cela fonctionne-t-il avec les PDF scannés ?
Oui. Quand il n’y a pas de couche de texte, un modèle de reconnaissance par IA s’exécute dans votre navigateur et lit les caractères sur les images des pages. Les titres sont alors classés d’après la hauteur de ligne mesurée plutôt que la taille de police, et rien n’est envoyé.