Skip to content

← Retour aux articles

Mammoth.js vs Pandoc WASM : lequel convertit le mieux Word en Markdown ?

Convertir Word en Markdown dans le navigateur est un problème résolu — deux fois. Mammoth.js existe depuis des années comme une bibliothèque JavaScript légère qui transforme docx en HTML sémantique et propre, tandis que Pandoc, le poids lourd de la conversion de documents, se compile désormais en WebAssembly et exécute le même moteur que celui sur lequel comptent les utilisateurs de bureau. Les deux empruntent des voies d'ingénierie vraiment différentes, et la différence se voit précisément là où vos documents se compliquent.

Cette comparaison examine d'abord le fonctionnement de chaque pipeline, puis parcourt les dimensions qui décident en pratique de la qualité de conversion : tableaux, notes de bas de page, formules, images, listes et suivi des modifications. Les deux outils s'exécutent entièrement côté client ; ce n'est donc pas une histoire de confidentialité, mais une histoire de fidélité contre empreinte.

Deux pipelines, deux philosophies

Mammoth lit l'OOXML contenu dans un fichier docx et le parcourt avec un seul objectif : le contenu sémantique, pas l'apparence. Les styles de paragraphe qu'il reconnaît deviennent des éléments HTML, et tout ce qu'il juge décoratif — la plupart des couleurs, polices, espacements, zones de texte, formes — est abandonné. Le résultat est un HTML d'une propreté réputée, qui demande peu de post-traitement avant d'entrer dans un CMS.

Pandoc démonte le même fichier avec un lecteur docx natif, mais au lieu d'émettre directement du HTML, il construit un arbre de syntaxe abstraite typé. Chaque lecteur — docx, odt, epub, LaTeX — produit ce même arbre, et chaque writer le consomme. Cette indirection permet à une seule analyse de produire du Markdown, du HTML, du reStructuredText, du LaTeX ou même un docx tout neuf.

Comment fonctionne le style map de Mammoth

Le point d'extension de Mammoth est le style map : une liste de règles qui associent les styles Word aux éléments HTML. Une règle peut déclarer qu'un paragraphe portant un style donné devient un h1, ou que des passages en gras utilisant un style de caractère personnalisé deviennent du strong. Les style maps permettent d'adapter Mammoth à vos gabarits maison sans toucher à son code, et c'est la principale raison pour laquelle les équipes disposant d'un modèle source unique et bien discipliné obtiennent d'excellents résultats.

En contrepartie, tout ce qui se trouve en dehors de la map et en dehors des fonctionnalités prises en charge par Mammoth disparaît purement et simplement. Pour les notes de service et les articles de blog, c'est un atout — la sortie reste propre. Pour les rapports denses truffés de notes de bas de page et d'équations, le silence n'est pas d'or.

Tableaux, notes de bas de page et formules

Les tableaux sont le premier mur. Mammoth convertit les tableaux simples en tables HTML basiques, mais les tableaux imbriqués sortent de son modèle, et les cellules fusionnées survivent rarement intactes. Pandoc analyse la structure complète du tableau, donc chaque ligne et chaque cellule survit à l'analyse ; ce qui se passe ensuite dépend du writer, car les tableaux à barres verticales de Markdown ne peuvent pas du tout exprimer les cellules fusionnées — cette limite appartient au format, pas au convertisseur —, tandis que le writer HTML conserve le tableau entier avec toutes ses cellules.

Les notes de bas de page racontent une histoire similaire. Mammoth rassemble les notes en fin de document et crée des liens qui y ramènent, ce qui convient à la lecture sur le web. Pandoc modélise les notes de bas de page comme des nœuds de premier ordre et émet une véritable syntaxe de notes de bas de page Markdown ou des notes de bas de page LaTeX natives. Les équations sont l'écart le plus net : Mammoth ne convertit pas les formules OMML de Word, tandis que Pandoc les transforme en notation LaTeX standard.

Images, listes et révisions

Les images fonctionnent dans les deux. Mammoth les intègre par défaut en data URIs dans le navigateur et vous laisse brancher un gestionnaire personnalisé ; Pandoc extrait les médias dans un dossier à côté de votre Markdown, ou les embarque en base64 quand vous avez besoin d'un fichier unique et autonome. Les listes à puces et numérotées du quotidien sont solides dans les deux moteurs, y compris avec plusieurs niveaux d'imbrication.

Le suivi des modifications est le point délicat. Pandoc expose une option trackChanges explicite avec accept, reject et all : vous choisissez donc quel état de révision aboutit dans la sortie. Mammoth n'a pas de modèle de révisions ; le texte ressort comme si chaque modification avait été acceptée, sans trace de ce qui l'a été. Aucun des deux outils ne remplace Word pour la relecture juridique — mais un seul vous laisse le choix.

Taille du bundle et livraison

L'écart de taille est le coût honnête de la fidélité. Le bundle navigateur de Mammoth pèse quelques centaines de kilo-octets et se charge avec la page. Pandoc compilé en WebAssembly avoisine les 58 mégaoctets — un vrai téléchargement à la première utilisation. Dans un Web Worker, cependant, ce coût n'est payé qu'une fois : ce site met le moteur en cache dans la Cache API du navigateur, si bien que le panneau Network reste vide à chaque conversion après la première, et l'outil continue de fonctionner hors ligne.

La mise en cache change l'arithmétique. Un moteur téléchargé exactement une fois par navigateur, qui se comporte ensuite comme un binaire local, n'a rien à voir avec un re-téléchargement à chaque session. Pour une équipe qui convertit chaque jour, le coût unique est dérisoire face aux heures gagnées à ne plus réparer des tableaux cassés.

Portée des sorties et citations

Mammoth produit du HTML et, avec un peu d'aide, du Markdown — rien d'autre. La liste des writers de Pandoc est la raison d'être de l'AST : la même analyse qui produit du Markdown peut produire du reStructuredText pour la documentation Sphinx, du LaTeX pour une soumission à une revue, ou un docx re-stylé via un modèle de référence. Les citations bouclent la boucle : Pandoc exécute citeproc contre une bibliographie et un style CSL, résolvant les clés de citation en références formatées en ligne — Mammoth n'a pas d'équivalent.

La portée s'étend aussi aux formats d'entrée. Pandoc lit odt, epub, HTML, LaTeX, Org et bien d'autres, si bien qu'un seul moteur couvre tout un pipeline de contenu. Mammoth est un spécialiste du docx par conception, et un très bon ; ne lui demandez simplement pas de jouer les plaques tournantes.

Comment choisir entre les deux

Les deux outils ne sont pas vraiment concurrents ; ils répondent à des questions différentes. Si vos documents sont simples, si votre budget de bundle est serré et si HTML ou Markdown est la seule cible, Mammoth est excellent — petit, rapide et prévisible, surtout accompagné d'un style map ajusté à votre modèle.

Si vos fichiers sources comportent des notes de bas de page, des équations, des tableaux complexes ou des citations, ou si vous avez besoin de plus de deux formats de sortie, Pandoc est le choix honnête, et l'exécuter en WebAssembly préserve la confidentialité zéro upload que partagent les deux outils. Ce site a choisi la voie Pandoc exactement pour cette raison : la fidélité d'abord, avec un téléchargement payé une fois puis mis en cache. Essayez votre document le plus coriace dans les deux et laissez la sortie décider.

Continuer la lecture

Essayez Pandoc dans votre navigateur