Guides Markdown
13 avril 2026
Par Antoine Frankart
Comment ajouter une ligne horizontale en Markdown

Une ligne horizontale en Markdown permet de séparer des sections, de casser le rythme entre deux idées, ou tout simplement d'offrir une respiration visuelle au lecteur. Il suffit de trois caractères sur une ligne. C'est tout. Mais comme souvent avec Markdown, ce n'est pas toujours aussi simple, surtout si vous alternez entre GitHub, Obsidian ou un générateur de site statique.
Voici l'essentiel à savoir sur les lignes horizontales en Markdown, depuis la syntaxe de base jusqu'aux cas limites qui vous feront perdre du temps.
Les trois syntaxes possibles
Markdown accepte trois écritures pour créer une ligne horizontale, aussi appelée horizontal rule ou thematic break :
---
***
___
Trois tirets, trois astérisques ou trois underscores. Dans tous les cas, le rendu HTML produit une balise <hr>.
Vous pouvez aussi utiliser plus de trois caractères si vous préférez un séparateur plus visible dans le fichier brut :
---------------
***************
_______________
Le rendu HTML reste celui d'une balise <hr>. Les caractères supplémentaires n'ajoutent pas d'effet spécial en eux-mêmes.
Une bonne habitude à retenir : laissez une ligne vide avant et après la ligne horizontale. Ce n'est pas une obligation absolue pour tous les lecteurs (parseurs) de fichiers Markdown, mais c'est la manière la plus sûre d'éviter les problèmes, surtout avec --- qui peut être interprété comme un titre de niveau 2 en syntaxe Setext.
Voici un paragraphe.
---
Voici un autre paragraphe.
Tirets, astérisques ou underscores : lequel choisir ?
Sur le plan fonctionnel, il n'y a aucune différence. Le choix relève surtout de la convention.
---est la forme la plus courante. On la retrouve partout dans les README GitHub, la documentation et les articles.***est parfois utilisé dans des contenus plus éditoriaux, car certains le trouvent plus visuel dans le texte brut.___fonctionne très bien aussi, mais reste plus rare.
Le plus important est la cohérence. Mieux vaut choisir une syntaxe et s'y tenir dans tous vos fichiers. En pratique, --- est le standard.
Les erreurs les plus fréquentes
Le piège du titre Setext
Si vous écrivez ceci :
Un texte
---
Markdown ne rendra généralement pas une ligne horizontale. Il transformera Un texte en titre de niveau 2.
La solution la plus sûre consiste à encadrer le séparateur avec des lignes vides :
Un texte
---
La confusion avec le frontmatter YAML
Si vous utilisez du frontmatter dans vos fichiers Markdown, ce qui est commun avec Nuxt Content, Astro, Hugo, Jekyll ou d'autres générateurs de sites statiques, votre document commence souvent comme ceci :
---
title: Mon article
date: 2026-04-13
---
Ici, les --- ne représentent pas une ligne horizontale. Ils servent à délimiter les métadonnées.
La confusion arrive surtout quand le frontmatter est mal fermé. Dans ce cas, le parser peut produire un rendu incohérent. Il faut donc toujours vérifier que le bloc est bien ouvert et fermé correctement.
Les espaces entre les caractères
Les syntaxes suivantes sont valides :
- - -
* * *
_ _ _
Elles produisent elles aussi une balise <hr>. Certaines personnes les utilisent pour améliorer la lisibilité du fichier source, mais ce n'est pas indispensable.
Comment cela se comporte sur GitHub
GitHub Flavored Markdown accepte les trois syntaxes.
Quelques remarques utiles :
- dans les README et les wikis,
---est la forme la plus fréquente - dans les issues et les pull requests, les lignes horizontales fonctionnent aussi très bien pour séparer le contexte de la demande
- dans GitHub Pages, un
---placé tout en haut du fichier sera interprété comme du frontmatter
Exemple courant dans une issue :
## Bug report
Étapes pour reproduire :
1. Ouvrir l'application
2. Cliquer sur "Save"
---
**Expected:** le fichier est enregistré
**Actual:** erreur 500
Comment cela se comporte dans Obsidian
Obsidian prend en charge ---, *** et ___. En pratique, --- est la syntaxe la plus utilisée.
Un point à connaître : Obsidian utilise aussi --- pour le frontmatter YAML. Si vous placez une ligne horizontale juste après ce bloc, il vaut mieux garder une ligne vide pour rester compatible avec les autres renderers Markdown.
En mode lecture comme en aperçu live, Obsidian rend la ligne sous la forme d'un séparateur visuel fin, adapté au thème actif.
Peut-on changer son épaisseur ou son style ?
Le Markdown standard ne permet pas de définir l'épaisseur, la couleur ou l'espacement d'une ligne horizontale. --- produit simplement un <hr>.
Si vous avez besoin d'un rendu personnalisé, vous avez deux options.
Option 1 : le CSS externe
Pour un site ou un blog, c'est la meilleure solution :
hr {
border: none;
border-top: 3px solid #333;
margin: 2rem 0;
}
Cela vous donne le contrôle sur l'épaisseur, la couleur, la largeur et les marges.
Option 2 : le CSS inline dans le HTML
<hr style="border: 2px solid red;" />
Cela dépend de l'outil de rendu. Certains acceptent le HTML inline, d'autres le filtrent partiellement ou complètement. Par exemple, GitHub accepte certaines balises HTML, mais nettoie les styles inline, donc cet exemple n'y donnera pas le rendu attendu. C'est moins fiable, donc mieux vaut l'éviter si vous voulez conserver un Markdown propre.
La bonne approche est généralement la suivante : gardez --- dans le contenu, et gérez le style dans la couche CSS.
Peut-on mettre une ligne horizontale dans un tableau ?
Non. Dans un tableau Markdown, la syntaxe |---|---| sert uniquement à séparer l'en-tête des colonnes.
| Nom | Rôle |
| ----- | -------- |
| Alice | Dev |
| Bob | Designer |
Ici, la ligne |-------|-----------| ne représente pas une ligne horizontale indépendante. Elle fait partie de la structure du tableau.
Si vous avez besoin d'une vraie séparation visuelle, le plus simple est souvent de découper le contenu en deux tableaux, avec une ligne horizontale entre les deux.
| Équipe A | Rôle |
| -------- | ---- |
| Alice | Dev |
---
| Équipe B | Rôle |
| -------- | -------- |
| Bob | Designer |
Référence rapide
| Syntaxe | Valide ? | Remarque |
|---|---|---|
--- |
Oui | La forme la plus courante. Attention au piège des titres Setext. |
*** |
Oui | Une bonne alternative si vous voulez éviter toute confusion avec le frontmatter. |
___ |
Oui | Plus rare, mais pris en charge partout. |
- - - |
Oui | Les espaces sont autorisés. |
---- |
Oui | Plus de trois caractères fonctionne aussi. |
-- |
Non | Deux caractères ne suffisent pas. |
Les lignes horizontales font partie des éléments Markdown les plus simples, mais ce sont aussi ceux qui génèrent des petits pièges agaçants : les titres Setext, le frontmatter YAML, ou les limites dans les tableaux.
Une fois ces cas compris, vous pouvez utiliser --- sans hésiter dans la plupart des documents.
Si vous travaillez aussi avec des tableaux, vous pouvez lire notre guide dédié : Tableau Markdown : Guide complet avec exemples.
Et si vous cherchez un lecteur Markdown qui rend correctement les séparateurs, les tableaux, les blocs de code et le reste sur tous vos appareils, notre application Fude est conçu précisément pour cela.