Outils Code & Formatage

HTML vers Markdown (et retour) : le guide pratique pour développeurs et rédacteurs

Markdown est une syntaxe légère créée par John Gruber en 2004 pour écrire du contenu formaté sans toucher au HTML. En 2026, c'est le standard de facto pour la documentation technique (GitHub, GitLab, Notion, Obsidian), les CMS headless et les workflows Jamstack. La conversion HTML ↔ Markdown est cruciale dans 3 scénarios : migration de WordPress vers un SSG (Static Site Generator), export de documentation depuis Notion/Confluence, ou nettoyage de contenu copié depuis Word/Google Docs. Mais attention : certaines balises HTML (<table>, <details>, <iframe>) n'ont aucun équivalent Markdown natif.

1. Markdown vs HTML : deux philosophies, deux cas d'usage

Markdown et HTML ne sont pas en compétition : ils répondent à des besoins différents. Comprendre leurs forces et limites permet de choisir le bon format selon le contexte.

CritèreMarkdownHTML
Lisibilité bruteExcellente (lisible sans rendu)Faible (balises polluent le texte)
Courbe d'apprentissage5 minutes (10 syntaxes de base)Plusieurs heures (100+ balises)
Contrôle du designLimité (sémantique uniquement)Total (classes, IDs, inline styles)
PortabilitéMaximale (texte brut, versionnable Git)Moyenne (nécessite parsing)
Cas d'usageDocumentation, README, blogs, notesInterfaces UI, emails, composants web
Tableaux complexesSyntaxe limitée (pas de colspan/rowspan)Support complet
Standard industrieGitHub, GitLab, Obsidian, Notion, Jekyll, HugoWeb universel, emails, frameworks UI

Le mythe du "Markdown remplace HTML"

Markdown n'a jamais eu pour objectif de remplacer HTML. John Gruber l'a conçu comme une syntaxe d'écriture pour les rédacteurs, pas comme un langage de markup complet. Dès qu'un besoin complexe apparaît (formulaires, iframes, custom layouts), HTML redevient nécessaire.

Quand utiliser Markdown :

Quand rester en HTML :

2. Les 10 syntaxes Markdown essentielles (et leurs équivalents HTML)

Markdown couvre 90% des besoins de formatage avec seulement 10 syntaxes de base. Voici la correspondance exacte avec HTML.

ÉlémentMarkdownHTML équivalent
Titre 1# Titre<h1>Titre</h1>
Titre 2## Titre<h2>Titre</h2>
Grastexte<strong>texte</strong>
Italiquetexte<em>texte</em>
Lientexte<a href="url">texte</a>
Imagealt<img src="url" alt="alt">
Liste à puces- item<ul><li>item</li></ul>
Liste numérotée1. item<ol><li>item</li></ol>
Citation> texte<blockquote>texte</blockquote>
Code inlinecode<code>code</code>
Bloc de codecode<pre><code>code</code></pre>

Markdown accepte le HTML natif

Vous pouvez mélanger Markdown et HTML dans le même fichier. Si Markdown ne supporte pas une fonctionnalité (ex: tableaux avec colspan), insérez directement la balise HTML : &lt;table&gt;...&lt;/table&gt;. Les parseurs Markdown (CommonMark, GFM) préservent le HTML brut.

Convertisseur HTML ↔ Markdown bidirectionnel

Convertissez votre HTML en Markdown (ou l'inverse) en 1 clic. Prévisualisez le rendu en temps réel.

Convertir maintenant →

3. Les 4 balises HTML sans équivalent Markdown natif

Markdown couvre les besoins de base, mais 4 types de contenu nécessitent du HTML brut ou des extensions (comme GitHub Flavored Markdown). Connaître ces limites évite les mauvaises surprises lors de migrations.

1. Tableaux complexes (<table> avec colspan/rowspan)

Markdown supporte des tableaux simples (lignes + colonnes), mais pas les fusions de cellules :

| Colonne 1 | Colonne 2 |
|-----------|-----------|
| Valeur A  | Valeur B  |

Pour un tableau avec colspan (fusion horizontale) ou rowspan (fusion verticale), vous devez utiliser HTML brut :

<table>
  <tr>
    <td colspan="2">Cellule fusionnée</td>
  </tr>
</table>

2. Éléments interactifs (<details>, <summary>)

Les accordéons HTML (<details>) ne sont pas supportés en Markdown pur. GitHub Flavored Markdown (GFM) les autorise :

<details>
  <summary>Cliquez pour déplier</summary>
  Contenu masqué par défaut.
</details>

3. Iframes et embeds (<iframe>, <video>)

Les embeds YouTube, Vimeo, tweets, ou vidéos nécessitent HTML :

<iframe src="https://www.youtube.com/embed/VIDEO_ID"></iframe>

4. Formulaires (<form>, <input>, <button>)

Markdown est orienté contenu statique. Tout formulaire interactif requiert HTML + JavaScript.

Attention aux "flavors" Markdown

Il existe plusieurs variantes de Markdown : CommonMark (standard), GitHub Flavored Markdown (GFM) (tableaux, task lists), Markdown Extra (footnotes, definition lists). Vérifiez quel parser utilise votre outil (Jekyll, Hugo, Obsidian) pour connaître les syntaxes supportées.

| Fonctionnalité | Markdown pur | GitHub Flavored Markdown (GFM) | HTML requis | |----------------|--------------|-------------------------------|-------------| | Tableaux simples | ✅ Supporté | ✅ Supporté | ❌ | | Tableaux avec colspan | ❌ Non supporté | ❌ Non supporté | ✅ Obligatoire | | Task lists (- [ ]) | ❌ Non supporté | ✅ Supporté | ❌ | | Strikethrough (~~texte~~) | ❌ Non supporté | ✅ Supporté | ❌ | | Accordéons <details> | ❌ Non supporté | ✅ Supporté | ✅ Recommandé | | Iframes/Embeds | ❌ Non supporté | ❌ Non supporté | ✅ Obligatoire |

4. Les 3 cas d'usage principaux de la conversion HTML → Markdown

La conversion HTML vers Markdown est cruciale dans 3 scénarios de migration technique. Comprendre ces use cases permet de choisir les bons outils et d'anticiper les pièges.

Use Case 1 : Migration WordPress → Jamstack (Jekyll, Hugo, Next.js)

Contexte : Vous migrez un blog WordPress (HTML/PHP/MySQL) vers un Static Site Generator (SSG) qui utilise Markdown.

Workflow :

  1. Exporter les posts WordPress en HTML (via plugin ou API).
  2. Convertir HTML → Markdown (automatisé avec pandoc ou script custom).
  3. Nettoyer le Markdown (supprimer les shortcodes WordPress, classes CSS inline).
  4. Importer les fichiers .md dans votre SSG (dossier content/).

Pièges courants :

Use Case 2 : Export de documentation Notion/Confluence → GitHub/GitLab

Contexte : Votre équipe rédige la documentation dans Notion/Confluence (interface WYSIWYG), mais vous voulez la versionner dans Git (format Markdown).

Workflow :

  1. Exporter la page Notion en HTML (option native).
  2. Convertir HTML → Markdown avec un outil (Pandoc, Turndown.js).
  3. Commit dans le repo Git (docs/ ou wiki GitHub).
  4. Automatiser avec un workflow CI/CD (sync périodique Notion → Git).

Avantages :

Use Case 3 : Nettoyage de contenu copié depuis Word/Google Docs

Contexte : Vous copiez-collez du contenu depuis Word ou Google Docs dans un CMS headless (Strapi, Contentful) qui accepte du Markdown.

Problème : Le copier-coller injecte du HTML pollué (classes inline, styles <span>, espaces insécables, balises vides).

Solution :

  1. Coller le contenu dans un éditeur HTML.
  2. Convertir HTML → Markdown (le convertisseur nettoie automatiquement les balises parasites).
  3. Obtenir un Markdown propre sans pollution visuelle.

Automatiser avec Pandoc (CLI)

Pandoc est l'outil de référence pour convertir entre 30+ formats (HTML, Markdown, DOCX, PDF, LaTeX). Commande type : pandoc input.html -o output.md. Supporte les conversions en masse avec scripts bash/python.

5. Checklist de conversion : valider la qualité HTML → Markdown

Après une conversion automatique HTML → Markdown, validez ces 8 points critiques pour garantir un résultat propre et exploitable.

1. Titres (H1-H6) :

2. Liens et images :

3. Listes :

4. Code :

5. Tableaux :

6. Formatage inline :

7. Caractères spéciaux :

8. Lisibilité brute :

Outil de conversionTypeCas d'usage
PandocCLI (Command Line)Conversions en masse, automatisation CI/CD
Turndown.jsJavaScript (browser/Node)Conversion côté client, éditeurs WYSIWYG
Analyseur-TexteWeb App (UI)Conversion rapide, nettoyage visuel, prévisualisation
html2text (Python)Python libraryScripts Python, data pipelines

En 2026, la conversion HTML ↔ Markdown n'est plus un luxe mais une compétence technique de base pour tout développeur ou rédacteur travaillant dans l'écosystème moderne (Jamstack, Git-based CMS, documentation-as-code). Maîtriser les limites de Markdown (tableaux complexes, iframes, formulaires) et savoir quand basculer en HTML brut est la clé pour maintenir des contenus propres, versionnés et maintenables sur le long terme.

Convertissez HTML ↔ Markdown en 1 clic

Conversion bidirectionnelle, prévisualisation temps réel, nettoyage automatique des balises parasites.

Essayer le convertisseur →

Cet article vous a-t-il aidé ?