Guide complet de Markdown vers HTML : De la syntaxe de base aux techniques de mise en page avancées

Documents

Pourquoi Markdown ?

Markdown est le standard de facto pour la documentation technique — GitHub, Stack Overflow, Notion et VS Code le prennent en charge nativement.

Comparaison Markdown Word HTML
Courbe d'apprentissage Faible Moyenne Élevée
Contrôle de version ✅ Texte brut ❌ Binaire ✅ Texte brut
Lisibilité ✅ Le source est le document
Capacité expressive Moyenne (forte avec extensions) Forte Forte
Cohérence du rendu Moyenne ❌ Varie selon la plateforme

Référence rapide de la syntaxe de base

Titres

# Titre H1
## Titre H2
### Titre H3
#### Titre H4
##### Titre H5
###### Titre H6

Mise en valeur

**Gras**    → <strong>Gras</strong>
*Italique*      → <em>Italique</em>
~~Barré~~  → <del>Barré</del>
`Code en ligne`  → <code>Code en ligne</code>

Listes

- Élément de liste non ordonnée 1
- Élément de liste non ordonnée 2
  - Élément imbriqué

1. Élément de liste ordonnée 1
2. Élément de liste ordonnée 2
   1. Ordonné imbriqué

- [ ] Tâche (incomplète)
- [x] Tâche (complétée)

Liens et images

[Texte du lien](https://example.com)
[Lien avec titre](https://example.com "Titre")
![Texte alternatif de l'image](image.png)
![Image avec titre](image.png "Titre de l'image")

Citations et lignes horizontales

> Texte de citation
> > Citation imbriquée

---

Syntaxe étendue GFM

Tableaux

| Aligné à gauche | Centré | Aligné à droite |
|:-------|:----:|-------:|
| Contenu   | Contenu | Contenu   |
| Contenu long | Court   | Moyen   |

Résultat du rendu :

Aligné à gauche Centré Aligné à droite
Contenu Contenu Contenu
Contenu long Court Moyen

Listes de tâches

- [x] Analyse des besoins
- [x] Conception technique
- [ ] Développement
- [ ] Tests et recette

Blocs de code clôturés

```javascript
function hello() {
  console.log('Hello, Markdown!');
}
```

```python
def hello():
    print("Hello, Markdown!")
```

Notes de bas de page

Ceci est un texte[^1], et une autre partie[^note].

[^1]: Ceci est le contenu de la première note de bas de page.
[^note]: Ceci est une note de bas de page avec un identifiant personnalisé.

Techniques de mise en page avancées

1. Formules mathématiques (KaTeX/MathJax)

Formule en ligne : $E = mc^2$

Formule en bloc :
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$

Matrice :
$$
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
$$

2. Diagrammes Mermaid

```mermaid
graph TD
    A[Requête utilisateur] --> B{Vérification d'authentification}
    B -->|Authentifié| C[Obtenir les données]
    B -->|Non authentifié| D[Retourner 401]
    C --> E[Afficher la page]
```

Types de diagrammes pris en charge :

Type Mot-clé Utilisation
Organigramme graph Processus métier, arbre de décision
Diagramme de séquence sequenceDiagram Appels API, flux d'interaction
Diagramme de classes classDiagram Conception orientée objet
Diagramme d'états stateDiagram Machine à états
Diagramme de Gantt gantt Planification de projet
Diagramme circulaire pie Répartition des données

3. Table des matières (TOC)

<!-- Générer la table des matières automatiquement -->
[[toc]]

<!-- Ou manuellement -->
- [Installer](#installer)
- [Configurer](#configurer)
- [Utiliser](#utiliser)

4. Listes de définitions

Terme 1
: Définition 1

Terme 2
: Définition 2

5. Abréviations

*[HTML]: Hyper Text Markup Language
*[W3C]: World Wide Web Consortium

HTML est un standard développé par le W3C.

Utiliser ToolsKu pour convertir le Markdown

Étapes de fonctionnement

  1. Ouvrez l'Éditeur Markdown
  2. Saisissez le Markdown dans la zone d'édition à gauche
  3. L'aperçu du rendu HTML s'affiche en temps réel à droite
  4. Vous pouvez basculer en mode « code source » pour voir le HTML généré
  5. L'exportation en fichier HTML est prise en charge

Extensions prises en charge

Extension Description Exemple
GFM Tableaux, listes de tâches, notes de bas de page Style GitHub
Formules mathématiques Rendu avec KaTeX $E=mc^2$
Mermaid Rendu de diagrammes Organigramme, diagramme de séquence
Coloration syntaxique Prism.js/highlight.js Coloration des blocs de code
Émoji :smile: → 😄 Remplacement de codes courts

Principes de conversion du Markdown en HTML

Flux d'analyse

Texte Markdown
  ↓
Analyse lexicale (Lexer) → Flux de tokens
  ↓
Analyse syntaxique (Parser) → AST (Arbre syntaxique abstrait)
  ↓
Rendu (Renderer) → Chaîne HTML

Bibliothèques d'analyse principales

Bibliothèque Langage Caractéristiques Taille
marked JS La plus rapide, la plus populaire 40KB
markdown-it JS Plugins riches, extensible 60KB
remark JS Écosystème AST, base de MDX 100KB+
CommonMark JS Conformité stricte au standard 50KB
pulldown-cmark Rust Performance extrême WASM 200KB

Utilisation de base de marked

import { marked } from 'marked';

const html = marked.parse('# Hello **Markdown**');
// <h1>Hello <strong>Markdown</strong></h1>

markdown-it + plugins

import MarkdownIt from 'markdown-it';
import mk from 'markdown-it-mark';
import footnote from 'markdown-it-footnote';
import tasklist from 'markdown-it-task-lists';

const md = new MarkdownIt({ html: true, linkify: true })
  .use(mk)
  .use(footnote)
  .use(tasklist);

const result = md.render('# Hello Markdown');

MDX : Markdown + JSX

MDX permet d'utiliser des composants React dans le Markdown :

---
title: "Mon article"
---

import { Chart } from './components/Chart';
import { Callout } from './components/Callout';

# Rapport d'analyse de données

<Callout type="warning">
  Les données suivantes sont basées sur l'échantillonnage du Q1 2026.
</Callout>

## Tendance de croissance des utilisateurs

<Chart data={growthData} type="line" />

| Mois | Utilisateurs | Taux de croissance |
|------|--------|--------|
| Jan  | 10,000 | -      |
| Fév  | 12,500 | 25%    |
| Mar  | 15,000 | 20%    |

Bonnes pratiques

1. Organisation des fichiers

docs/
├── getting-started.md
├── configuration.md
├── api/
│   ├── authentication.md
│   ├── endpoints.md
│   └── errors.md
└── guides/
    ├── deployment.md
    └── troubleshooting.md

2. Conventions de rédaction

  • Une phrase par ligne : Compatible avec Git diff, facilite la revue des modifications
  • Ne pas sauter de niveaux de titres : H1 → H2 → H3, pas H1 → H3
  • Spécifier le langage dans les blocs de code : ````javascript` au lieu de `````
  • Utiliser les liens en style référence : Dans les documents longs, [texte][ref] est plus propre que [texte](url)
  • Ajouter un texte alternatif aux images : ![description](image) améliore l'accessibilité

3. Outils Lint

# Installer markdownlint
npm install -g markdownlint-cli

# Vérifier
markdownlint docs/**/*.md

# Corriger automatiquement
markdownlint docs/**/*.md --fix

Questions fréquentes

Le HTML dans le Markdown ne fonctionne pas ?

Certains analyseurs désactivent le HTML brut par défaut, vous devez activer l'option html: true.

Les tableaux ne prennent pas en charge la fusion de cellules ?

Les tableaux Markdown standard ne prennent pas en charge la fusion de cellules. Utilisez des tableaux HTML si nécessaire :

<table>
  <tr>
    <th>Nom</th>
    <th>Description</th>
  </tr>
  <tr>
    <td rowspan="2">Projet A</td>
    <td>Sous-élément 1</td>
  </tr>
  <tr>
    <td>Sous-élément 2</td>
  </tr>
</table>

La syntaxe Markdown dans les blocs de code est analysée ?

Utilisez plus d'accents graves pour l'imbrication :

````markdown
```javascript
console.log('Ne sera pas analysé par la couche externe');
```

---

## Résumé

Markdown est le meilleur format pour la rédaction technique — concis, contrôlable en version, écosystème riche. Maîtrisez la syntaxe de base + les extensions GFM + les formules mathématiques + les diagrammes Mermaid, et vous pourrez rédiger une documentation technique de niveau professionnel. L'[Éditeur Markdown](/fr/docs/markdown) de ToolsKu offre un aperçu en temps réel et l'exportation, vous permettant de vous concentrer sur le contenu plutôt que sur la mise en page.
#Markdown#HTML转换#文档编写#排版#教程