Markdown est devenu le langage de balisage léger universel : il alimente les fichiers README des projets open source, la documentation de presque tous les logiciels, les articles de nombreux blogs techniques et les notes d’applications comme Notion, Obsidian et Bear. Sa longévité tient à une idée simple : le texte brut reste lisible, et sa syntaxe de mise en forme (astérisques pour le gras, dièses pour les titres) est intuitive et sans ambiguïté. Les sections suivantes expliquent pourquoi Markdown a remplacé HTML, RTF et les formats propriétaires dans les flux d’écriture modernes, et les critères d’un bon éditeur Markdown.
Pourquoi Markdown a gagné la bataille des langages de balisage léger
À la fin des années 1990 et au début des années 2000, plusieurs langages de balisage léger se disputaient le créneau du « plus simple que HTML » : Textile, reStructuredText, BBCode, la syntaxe DokuWiki, le balisage MediaWiki et bien d’autres. Créé par John Gruber en 2004, Markdown n’était ni le premier ni le plus puissant, mais il a gagné sur la durée pour trois raisons. D’abord, la lisibilité : la source Markdown ressemble à ce qu’elle représente. `**gras**` évoque clairement une mise en évidence ; `# Titre` évoque un titre. D’autres formats imposaient de mémoriser une syntaxe moins intuitive (les `h1.` de Textile, les soulignements de reStructuredText ou les balises `[b]` de BBCode). Ensuite, la source est du texte brut valide : on peut l’envoyer par courriel, la coller dans n’importe quel formulaire, la stocker dans une base de données ou la lire dans un terminal sans rendu. Le rendu est facultatif, ce qui correspond à la manière dont la plupart des gens écrivent : les brouillons avancent mieux quand l’interface d’un traitement de texte ne fait pas obstacle. Enfin, l’adoption par GitHub : lorsque la plateforme a adopté Markdown pour les README, les tickets et les descriptions de demandes de fusion vers 2009, les développeurs qui l’utilisaient sont devenus utilisateurs de Markdown par défaut. Cet effet de réseau en a fait le format universel de la documentation destinée aux développeurs, puis l’a répandu dans les blogs techniques, les générateurs de sites statiques, les applications de gestion des connaissances et les outils d’écriture généralistes.
Caractéristiques d’un bon éditeur Markdown
Les meilleurs éditeurs Markdown partagent quelques caractéristiques qui les distinguent des éditeurs de texte généralistes. L’aperçu en direct est essentiel : saisir le texte dans un panneau et voir le rendu se mettre à jour dans un autre permet de vérifier immédiatement la syntaxe et le résultat visuel. Un aperçu actualisé à chaque frappe, plutôt qu’à l’enregistrement ou à la demande, permet de repérer les erreurs — bloc de code non fermé ou lien mal formé — avant publication. La coloration syntaxique distingue les marqueurs de mise en forme du contenu et facilite la lecture de la source. Une barre d’outils pour le gras, l’italique, les liens, les blocs de code et les listes évite de mémoriser toute la syntaxe. Le nombre de mots et le temps de lecture dans la barre d’état aident les auteurs qui visent une longueur ou une durée précise. L’export en `.md` (pour les dépôts et les systèmes de documentation) et en `.html` (pour un CMS ou une publication autonome) couvre les usages courants. La sécurité compte aussi : tout éditeur qui affiche le HTML généré doit l’assainir pour prévenir les attaques XSS. Cet éditeur utilise DOMPurify afin de supprimer les scripts, les gestionnaires d’événements intégrés et d’autres attributs dangereux.
Extensions Markdown et quand les utiliser
CommonMark de base couvre la mise en forme courante, mais pas certaines fonctions utiles à la documentation moderne. Cet éditeur prend en charge plusieurs extensions fréquentes : tableaux (lignes séparées par des barres verticales et séparateur d’en-tête `---`), texte barré (`~~texte~~`), listes de tâches (`- [ ]` pour une tâche non terminée, `- [x]` pour une tâche terminée), blocs de code délimités avec indication facultative du langage et liens automatiques (URL en texte brut converties en liens cliquables). D’autres extensions, moins courantes, existent dans certaines variantes : notes de bas de page (`[^1]`), expressions mathématiques (`$...$` ou `$$...$$` pour MathJax ou KaTeX), diagrammes Mermaid, encadrés d’avertissement (`!!! note` dans MkDocs) et vidéos ou messages intégrés. Elles ne font pas partie de CommonMark et nécessitent un moteur de rendu spécifique ; leur emploi dans des contenus diffusés sur plusieurs plateformes peut produire des rendus différents. Mieux vaut s’en tenir à CommonMark et GitHub Flavored Markdown pour les contenus destinés à circuler entre plusieurs systèmes, et ajouter des extensions uniquement lorsque le moteur de publication les prend en charge. Cet éditeur implémente CommonMark et GFM, couvrant les besoins courants sans compromettre la portabilité.