Conversion de documents Word au format Markdown : un guide complet

Utilisation de pandoc, python ou d'outils en ligne pour la conversion en MD \`\`\`

Sommaire

La conversion de documents Word au format Markdown est une tâche très courante pour les rédacteurs techniques, les développeurs et les créateurs de contenu souhaitant déplacer leur contenu vers des plateformes utilisant Markdown (comme GitHub, GitLab, ou des générateurs de sites statiques comme Hugo).

Ce guide couvre plusieurs approches et outils pour accomplir cette conversion efficacement.

word to markdown on the grinder

Pourquoi convertir Word en Markdown ?

Markdown offre plusieurs avantages par rapport aux documents Word :

  • Amical pour le contrôle de version : Le format texte brut fonctionne bien avec Git
  • Indépendant de la plateforme : Lisible sur tout système sans logiciel particulier
  • Futuriste : Format de texte simple qui ne deviendra pas obsolète
  • Prêt pour le web : Facile à convertir en HTML pour les sites web et blogs
  • Léger : Taille de fichiers beaucoup plus petite
  • Amical à l’automatisation : Facile à traiter de manière programmée

Ce que Pandoc préserve :

  • Titres (convertis en #, ##, ###, etc.)
  • Gras et italique
  • Listes (à puces et numérotées)
  • Liens et références
  • Tableaux (convertis en tableaux Markdown ou HTML)
  • Blocs de code et code en ligne
  • Images (avec l’option --extract-media)
  • Notes de bas de page

Méthode 1 : Utiliser Pandoc (Recommandé)

Pandoc est un convertisseur universel de documents qui excelle dans la conversion entre différents formats de balisage. C’est l’outil le plus fiable pour la conversion de Word en Markdown.

Installer Pandoc

Sur Ubuntu/Debian :

sudo apt update
sudo apt install pandoc

Sur macOS :

# Avec Homebrew
brew install pandoc

# Ou télécharger depuis le site officiel
# https://pandoc.org/installing.html

Sur Windows :

# Avec Chocolatey
choco install pandoc

# Ou télécharger l'installeur depuis :
# https://github.com/jgm/pandoc/releases

Vérifier l’installation :

pandoc --version

Conversion avec Pandoc

Pour les fichiers DOCX (format Word moderne) :

pandoc document.docx -o document.md

Pour les anciens fichiers DOC : Pandoc ne peut pas lire directement les fichiers .doc. Vous devez les convertir en .docx d’abord avec LibreOffice :

# Première étape : convertir DOC en DOCX
libreoffice --headless --convert-to docx document.doc

# Deuxième étape : convertir DOCX en Markdown
pandoc document.docx -o document.md

Options avancées de Pandoc :

# Convertir avec une variante spécifique de Markdown
pandoc document.docx -t gfm -o document.md  # Markdown Flavoureux de GitHub

# Extraire les images dans un dossier
pandoc document.docx --extract-media=./images -o document.md

# Préserver davantage de mise en forme
pandoc document.docx -t markdown+pipe_tables+raw_html -o document.md

# Convertir avec un modèle personnalisé
pandoc document.docx --template=custom.template -o document.md

Méthode 2 : Utiliser LibreOffice + Pandoc (Pour les fichiers DOC)

Lorsque vous avez affaire à des fichiers .doc anciens, ce processus en deux étapes fonctionne le mieux :

Installer LibreOffice

Sur Ubuntu/Debian :

sudo apt update
sudo apt install libreoffice

Sur macOS :

brew install --cask libreoffice

Sur Windows : Télécharger depuis le site LibreOffice

Processus de conversion :

# Étape 1 : Convertir DOC en DOCX
libreoffice --headless --convert-to docx document.doc

# Étape 2 : Convertir DOCX en Markdown avec Pandoc
pandoc document.docx -o document.md

# Nettoyer le fichier intermédiaire (optionnel)
rm document.docx

Script de conversion en lot avec pandoc :

Créer un script pour convertir plusieurs fichiers :

#!/bin/bash
# convert-docs.sh

for file in *.doc; do
    if [ -f "$file" ]; then
        echo "Conversion de $file..."
        
        # Convertir DOC en DOCX
        libreoffice --headless --convert-to docx "$file"
        
        # Obtenir le nom de fichier sans extension
        basename=$(basename "$file" .doc)
        
        # Convertir DOCX en Markdown
        pandoc "${basename}.docx" -o "${basename}.md"
        
        # Nettoyer le fichier DOCX intermédiaire
        rm "${basename}.docx"
        
        echo "✓ Créé ${basename}.md"
    fi
done

Rendre le script exécutable et lancer :

chmod +x convert-docs.sh
./convert-docs.sh

Méthode 3 : Utiliser des convertisseurs en ligne (Rapide et facile)

Pour des conversions occasionnelles, les outils en ligne peuvent être pratiques :

Convertisseurs en ligne populaires :

Avantages et inconvénients :

  • Avantages : Aucune installation requise, fonctionne sur tout appareil
  • Inconvénients : Préoccupations de confidentialité, limites de taille de fichiers, moins de contrôle sur la sortie

Méthode 4 : Utiliser l’export natif de Word (Limité)

Les versions modernes de Microsoft Word peuvent exporter vers du Markdown basique :

  1. Ouvrez votre document dans Word
  2. Allez dans FichierExporterChanger le type de fichier
  3. Sélectionnez Page Web filtrée (*.html)
  4. Utilisez un convertisseur HTML → Markdown comme Pandoc :
pandoc document.html -o document.md

Note : Cette méthode produit souvent des résultats moins bons que la conversion directe en DOCX.

Méthode 5 : Solutions de programmation

Python avec python-docx et markdownify :

#!/usr/bin/env python3
import sys
from docx import Document
from markdownify import markdownify

def docx_to_markdown(docx_path, md_path):
    # Lire le fichier docx
    doc = Document(docx_path)
    
    # Extraire le texte (conversion basique)
    full_text = []
    for paragraph in doc.paragraphs:
        full_text.append(paragraph.text)
    
    # Convertir en markdown (basique)
    markdown_content = '\n\n'.join(full_text)
    
    # Écrire dans le fichier
    with open(md_path, 'w', encoding='utf-8') as f:
        f.write(markdown_content)

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Utilisation : python docx_to_md.py input.docx output.md")
        sys.exit(1)
    
    docx_to_markdown(sys.argv[1], sys.argv[2])
    print(f"Converti {sys.argv[1]} en {sys.argv[2]}")

Installer les dépendances :

pip install python-docx markdownify

Note : C’est une implémentation basique. Pandoc produira de meilleurs résultats pour les documents complexes.

Gestion des problèmes courants

1. Tableaux complexes

# Utiliser le format de tableaux pipe pour une meilleure compatibilité
pandoc document.docx -t markdown+pipe_tables -o document.md

2. Images non converties

# Extraire les images dans un dossier séparé
pandoc document.docx --extract-media=./images -o document.md

3. Perte de mise en forme

# Préserver davantage de HTML pour une mise en forme complexe
pandoc document.docx -t markdown+raw_html -o document.md

4. Problèmes d’encodage des caractères

# Spécifier l'encodage UTF-8
pandoc document.docx -t markdown -o document.md --from=docx --to=markdown

Bonnes pratiques

1. Préparation avant la conversion

  • Nettoyez votre document Word avant la conversion
  • Utilisez des styles de titres cohérents (Titre 1, Titre 2, etc.)
  • Évitez les formats complexes qui ne se traduisent pas bien en Markdown
  • Utilisez la mise en forme de liste native de Word plutôt que des puces manuelles

2. Nettoyage après la conversion

  • Vérifiez la sortie pour les problèmes de mise en forme
  • Corrigez la mise en forme des tableaux si nécessaire
  • Ajustez les chemins d’image et le texte alternatif
  • Nettoyez les sauts de ligne ou les problèmes d’espacement supplémentaires

3. Conseils pour l’automatisation

# Créer un raccourci pour une conversion courante
echo 'alias doc2md="pandoc --from=docx --to=markdown"' >> ~/.bashrc

# Fonction pour la conversion en lot
doc2md_batch() {
    for file in *.docx; do
        pandoc "$file" -o "${file%.docx}.md"
    done
}

Comparaison des méthodes

Méthode Avantages Inconvénients Meilleure pour
Pandoc Qualité excellente, nombreuses options Requiert l’installation Conversions régulières, documents complexes
LibreOffice + Pandoc Gère les fichiers DOC Processus en deux étapes Fichiers DOC anciens
Convertisseurs en ligne Aucune installation requise Confidentialité, limites de fonctionnalités Conversions rapides ponctuelles
Export Word Natif Qualité de sortie médiocre Documents simples uniquement
Programmation Personnalisable Requiert du codage Flux de travail automatisés

Petite synthèse

Pour la plupart des utilisateurs, Pandoc est la solution recommandée pour convertir des documents Word en Markdown. Il offre le meilleur équilibre entre qualité, fonctionnalités et fiabilité. Pour les anciens fichiers .doc, la combinaison LibreOffice + Pandoc fonctionne très bien.

La clé d’une conversion réussie est :

  1. Préparer votre document Word avec une mise en forme cohérente
  2. Choisir l’outil adapté à vos besoins spécifiques
  3. Vérifier et nettoyer la sortie
  4. Automatiser le processus si vous effectuez des conversions régulières

Avec ces outils et ces techniques, vous pouvez efficacement convertir vos documents Word au format Markdown tout en préservant la plupart de la mise en forme et de la structure originale.

Commandes de référence rapides

# Conversion de base (DOCX à Markdown)
pandoc document.docx -o document.md

# Conversion de DOC à Markdown (deux étapes)
libreoffice --headless --convert-to docx document.doc
pandoc document.docx -o document.md

# Markdown Flavoureux de GitHub
pandoc document.docx -t gfm -o document.md

# Extraire les images
pandoc document.docx --extract-media=./images -o document.md

# Conversion en lot de tous les fichiers DOCX
for file in *.docx; do pandoc "$file" -o "${file%.docx}.md"; done

Liens utiles