ToolDeck

Convertisseur HTML en Markdown

Convertissez du HTML au format Markdown

Essayer un exemple

Entrée HTML

Sortie Markdown

Fonctionne localement · Sûr pour coller des secrets
La sortie Markdown apparaîtra ici…

Qu'est-ce que la conversion HTML en Markdown ?

La conversion HTML en Markdown transforme le balisage HTML en Markdown, une syntaxe de formatage en texte brut légère créée par John Gruber en 2004. Markdown a été conçu pour être lisible sans rendu. Là où HTML nécessite des balises ouvrantes et fermantes comme <strong> et <a href="">, Markdown utilise des caractères abrégés : **gras**, [liens](url) et # titres. Convertir du HTML en Markdown produit des fichiers plus faciles à lire, modifier et versionner que le HTML brut.

Le processus de conversion mappe les éléments HTML à leurs équivalents Markdown. Un <h2> devient ##, un <ul><li> devient - élément, et une balise <a> devient [texte](url). Certains éléments HTML n'ont pas d'équivalent Markdown direct, comme <div>, <span> ou les attributs data personnalisés. Les convertisseurs suppriment généralement ces balises ou les transmettent telles quelles en HTML brut, selon la configuration.

Markdown est devenu le format d'écriture standard pour la documentation développeur (GitHub, GitLab, Bitbucket), les générateurs de sites statiques (Hugo, Jekyll, Astro), les applications de prise de notes (Obsidian, Notion) et les blogs techniques. Convertir du contenu HTML existant en Markdown est une étape courante lors de la migration de sites web, de l'importation de contenu CMS ou de l'archivage de pages web dans un format portable. Contrairement au HTML, les fichiers Markdown produisent des diffs propres dans le contrôle de version, ce qui rend pratique la revue de code des modifications de documentation.

Pourquoi utiliser un convertisseur HTML en Markdown ?

Réécrire manuellement du HTML en Markdown est lent et source d'erreurs, surtout pour des pages avec des listes imbriquées, des tableaux ou des dizaines de liens. Un convertisseur automatisé gère le mapping structurel instantanément et de façon cohérente.

Conversion instantanée dans le navigateur
Collez du HTML et obtenez la sortie Markdown en quelques millisecondes. Pas d'aller-retour serveur, pas d'attente de files de traitement. La conversion s'exécute entièrement dans votre navigateur en JavaScript.
🔒
Vos données restent privées
Votre HTML ne quitte jamais votre machine. Tout le traitement se fait côté client, donc il n'y a aucun envoi, aucune journalisation et aucun accès tiers à votre contenu.
📝
Préservation de la structure du document
Les titres, listes, liens, images, blocs de code et tableaux sont mappés à leurs équivalents Markdown corrects. Les structures imbriquées et le formatage inline sont traités récursivement.
🔀
Aucun compte ni installation requis
Ouvrez l'outil et commencez à convertir. Rien à installer, aucune clé API à configurer, aucun formulaire d'inscription. Fonctionne sur n'importe quel appareil avec un navigateur moderne.

Cas d'utilisation du convertisseur HTML en Markdown

Développeur frontend : migration CMS
Exportez des articles de blog ou des pages depuis WordPress, Drupal ou un CMS headless en HTML, puis convertissez-les en Markdown pour les utiliser avec des générateurs de sites statiques comme Next.js, Astro ou Hugo.
Ingénieur backend : documentation d'API
Convertissez les docs d'API HTML générées automatiquement en fichiers Markdown qui vivent aux côtés de votre code source. Les docs Markdown s'intègrent au rendu GitHub et peuvent être versionnées avec le code qu'elles décrivent.
DevOps : conversion de runbooks
Transformez les pages wiki internes (Confluence, SharePoint) exportées en HTML en runbooks Markdown stockés dans votre dépôt Git aux côtés du code d'infrastructure qu'ils décrivent.
Ingénieur QA : documentation des cas de test
Convertissez les rapports de test HTML ou les plans de test manuels issus d'outils web en fichiers Markdown pouvant être revus dans des pull requests aux côtés des modifications de code qu'ils vérifient.
Ingénieur données : nettoyage de scraping web
Supprimez le balisage HTML superflu des pages web scrapées et produisez du texte Markdown propre. Cela élimine la navigation, les publicités et le balisage de mise en page tout en préservant le contenu et la structure de l'article.
Étudiant : notes de recherche
Copiez du contenu depuis des ressources web et convertissez le HTML en Markdown pour l'importer dans Obsidian, Notion ou tout système de prise de notes basé sur Markdown. Préserve les titres, les liens et le formatage.

Référence des éléments HTML en Markdown

Le tableau ci-dessous montre comment les éléments HTML courants se mappent à leurs équivalents Markdown. Ce mapping suit les conventions GitHub-Flavored Markdown (GFM), qui étendent la spécification CommonMark avec des tableaux, le barré et les listes de tâches. Les éléments non listés ici (comme <div>, <form> ou les web components personnalisés) n'ont pas d'équivalent Markdown et sont soit supprimés, soit transmis tels quels en HTML brut.

Élément HTMLSyntaxe MarkdownNotes
<h1>...<h6># ... ######ATX headings, level matches tag number
<p>Blank line separationDouble newline between paragraphs
<strong>, <b>**text**Bold / strong emphasis
<em>, <i>*text*Italic / emphasis
<a href="url">[text](url)Inline link with optional title
<img src="url">![alt](url)Image with alt text
<ul><li>- itemUnordered list with dash or asterisk
<ol><li>1. itemOrdered list, numbers restart per block
<blockquote>> textBlock quote, nestable with >>
<code>`code`Inline code span
<pre><code>```lang\ncode\n```Fenced code block with optional language
<hr>---Horizontal rule (three dashes)
<table>| col | col |GFM table syntax with alignment
<del>, <s>~~text~~Strikethrough (GFM extension)

Variantes Markdown : GFM vs CommonMark vs Original

Tous les Markdown ne sont pas identiques. Le format de sortie importe car les différentes plateformes analysent Markdown différemment. Les trois variantes les plus courantes sont GitHub-Flavored Markdown (GFM), CommonMark et le Markdown original de Gruber.

GitHub-Flavored Markdown (GFM)
La variante la plus répandue. Ajoute les tableaux (syntaxe pipe), le barré (~~texte~~), les listes de tâches (- [x]) et les URLs auto-liées. Utilisée par GitHub, GitLab et la plupart des outils développeur. Ce convertisseur produit du Markdown compatible GFM par défaut.
CommonMark
Une spécification stricte qui résout les ambiguïtés de la syntaxe Markdown originale. Définit des règles précises pour la continuation des listes, l'analyse de l'emphase et l'imbrication au niveau bloc. Utilisée comme base pour GFM et de nombreux générateurs de sites statiques.
Markdown Original
La spécification de John Gruber de 2004. Ne prend pas en charge les tableaux, les blocs de code délimités ni le barré. La plupart des outils modernes le traitent comme un sous-ensemble de CommonMark. Rarement utilisé comme format cible aujourd'hui.

Exemples de code

Exemples fonctionnels en JavaScript (Turndown), Python (markdownify et html2text), Go et Pandoc en ligne de commande.

JavaScript (Turndown)
import TurndownService from 'turndown'

const turndown = new TurndownService({ headingStyle: 'atx' })
const html = '<h1>Title</h1><p>A <strong>bold</strong> paragraph.</p>'
const md = turndown.turndown(html)
console.log(md)
// → "# Title\n\nA **bold** paragraph."
Python (markdownify)
from markdownify import markdownify

html = '<h2>Section</h2><ul><li>First</li><li>Second</li></ul>'
md = markdownify(html, heading_style='ATX')
print(md)
# → "## Section\n\n- First\n- Second"
Python (html2text)
import html2text

converter = html2text.HTML2Text()
converter.body_width = 0  # disable line wrapping

html = '<p>Visit <a href="https://example.com">Example</a> for details.</p>'
md = converter.handle(html)
print(md)
# → "Visit [Example](https://example.com) for details."
Go (html-to-markdown)
package main

import (
	"fmt"
	md "github.com/JohannesKaufmann/html-to-markdown"
)

func main() {
	converter := md.NewConverter("", true, nil)
	html := `<h3>Go Example</h3><p>Code: <code>fmt.Println()</code></p>`
	markdown, _ := converter.ConvertString(html)
	fmt.Println(markdown)
	// → "### Go Example\n\nCode: `fmt.Println()`"
}
CLI (Pandoc)
# Convert an HTML file to Markdown
pandoc input.html -f html -t markdown -o output.md

# Pipe HTML from stdin
echo '<p>Hello <em>world</em></p>' | pandoc -f html -t markdown
# → Hello *world*

# Use GitHub-Flavored Markdown output
pandoc input.html -f html -t gfm -o output.md

Questions fréquentes

Quels éléments HTML ne peuvent pas être convertis en Markdown ?
Markdown n'a pas d'équivalent pour <div>, <span>, <form>, <input>, <iframe> ou tout élément avec des classes et styles CSS personnalisés. La plupart des convertisseurs suppriment ces balises et ne conservent que le texte intérieur. Certains convertisseurs peuvent transmettre le HTML non pris en charge tel quel, ce qui est valide puisque la spécification Markdown autorise explicitement le HTML inline. Si vous devez préserver ces éléments, configurez votre convertisseur pour conserver le HTML brut plutôt que de le supprimer.
Comment les tableaux HTML sont-ils convertis en Markdown ?
Les tableaux HTML se mappent à la syntaxe de tableau pipe GFM : | En-tête | En-tête | avec une ligne de séparation | --- | --- |. Les tableaux GFM ne prennent pas en charge colspan, rowspan ni les styles au niveau des cellules. Les tableaux complexes avec des cellules fusionnées sont aplatis, ce qui peut entraîner une perte d'informations structurelles. Pour les tableaux de données simples, la conversion est sans perte.
La conversion HTML en Markdown est-elle sans perte ?
Non. Markdown est un sous-ensemble de HTML, donc certaines informations sont toujours perdues lors de la conversion. Les classes CSS, les styles inline, les attributs data, les éléments de formulaire et les balises sémantiques comme <article> ou <section> n'ont pas d'équivalent Markdown. Le contenu textuel et la structure de base (titres, listes, liens, emphase) sont préservés fidèlement. Pour la plupart des flux de documentation et de migration de contenu, les éléments préservés sont ceux qui comptent.
Quelle est la différence entre HTML en Markdown et HTML en texte brut ?
La conversion HTML en texte brut supprime tout le formatage et produit du texte brut sans structure. La conversion HTML en Markdown préserve la structure du document : les titres restent des titres, les liens conservent leurs URLs, les listes restent des listes et l'emphase est maintenue. La sortie Markdown peut être restituée en HTML avec la même structure logique.
Puis-je reconvertir Markdown en HTML ?
Oui. Tout processeur Markdown (marked, markdown-it, Python-Markdown, goldmark) convertit Markdown en HTML. Cet aller-retour est l'une des raisons de la popularité de Markdown : vous écrivez dans un format lisible et restituez en HTML pour le web. L'aller-retour n'est pas parfaitement symétrique car la conversion HTML en Markdown supprime les éléments non pris en charge.
Comment le convertisseur gère-t-il le HTML avec du CSS ou JavaScript inline ?
Le CSS inline (attributs style) et les blocs <style> sont supprimés lors de la conversion car Markdown n'a pas de syntaxe de style. Le JavaScript (balises <script> et gestionnaires d'événements comme onclick) est également supprimé. Le convertisseur extrait uniquement le contenu et la structure du document. Cela fait de la conversion HTML en Markdown une étape d'assainissement utile lors de l'importation de contenu HTML non fiable dans votre documentation.
Quelle variante Markdown utiliser pour mon projet ?
Utilisez GitHub-Flavored Markdown (GFM) si votre contenu sera consulté sur GitHub, GitLab ou la plupart des plateformes de documentation. Utilisez CommonMark si vous avez besoin d'une conformité stricte à la spécification et d'un rendu prévisible entre différents moteurs. Le Markdown original n'est pertinent que pour les systèmes hérités. GFM est la valeur par défaut la plus sûre pour la plupart des projets.