Éditeur et générateur de diagrammes Mermaid en direct
Transformez du texte en diagramme avec l’éditeur ci-dessous. Le guide et ses exemples vous aident à choisir une représentation pour un processus, une explication technique ou un planning.
Chargement de l'outil…
Qu’est-ce que Mermaid ?
Mermaid (en anglais) est un langage de description de diagrammes accompagné d’un moteur de rendu : vous décrivez des étapes, des personnes ou des relations en texte, puis il dessine le diagramme. Par exemple, Review --> Publish relie deux nœuds par une flèche. Vous définissez les relations ; Mermaid calcule la disposition.
Cette approche est souvent appelée diagrammes sous forme de code. La source est du texte ordinaire, que vous pouvez rechercher, copier et versionner avec le document qu’elle explique. Il n’est pas nécessaire d’écrire du JavaScript. Mermaid dessine ce que vous décrivez ; il n’analyse pas votre application et ne vérifie pas qu’un processus est correct.
Choisir un diagramme selon la question à résoudre
Un diagramme utile a un objectif précis. Déterminez ce que le lecteur doit comprendre avant de choisir les formes ou les couleurs.
| Votre question | Un diagramme adapté | Les éléments à représenter |
|---|---|---|
| Que se passe-t-il ensuite, et où le processus peut-il bifurquer ? | Organigramme | Actions, décisions et résultats, par exemple pour valider une note de frais. |
| Qui communique avec qui, et dans quel ordre ? | Diagramme de séquence | Personnes ou services et leurs messages, par exemple lors d’une requête API. |
| Quels états cet élément peut-il prendre ? | Diagramme d’états | États et événements de transition, par exemple l’ouverture, la résolution et la réouverture d’un ticket. |
| Comment nos données sont-elles liées ? | Diagramme entité-association | Entités, clés et cardinalités, par exemple des clients et leurs commandes. |
| Quelles sont les dépendances et les dates possibles ? | Diagramme de Gantt | Dates, durées et dépendances d’un petit projet. |
Pour d’autres besoins, une carte mentale peut organiser des idées, une chronologie résumer des événements et un graphe Git expliquer une stratégie de branches. Consultez la présentation de la syntaxe Mermaid (en anglais) pour explorer d’autres familles. Chacune possède sa propre grammaire : modifier seulement la première ligne ne convertit pas un diagramme dans un autre format.
Cinq exemples à adapter
Chaque onglet contient un diagramme complet et explique un choix de modélisation. Copiez le code dans un éditeur Mermaid pour le visualiser ; la déclaration du type appartient à la source, mais pas les accents graves qui délimitent un bloc Markdown. Les mots-clés Mermaid restent en anglais, tandis que les libellés peuvent être en français.
Montrer le chemin à suivre en cas de problème
Un processus de validation des notes de frais doit expliquer quoi faire lorsqu’un justificatif manque. Cet organigramme renvoie la demande pour correction au lieu de laisser cette situation sans réponse.
flowchart TD
Submit["Envoyer la note de frais"] --> Check{"Justificatif joint ?"}
Check -->|Oui| Review["Examen par le responsable"]
Check -->|Non| Fix["Joindre le justificatif"]
Fix --> Check
Review --> Decision{"Demande acceptée ?"}
Decision -->|Oui| Pay["Rembourser le salarié"]
Decision -->|Non| Reject["Expliquer le refus"]
TD dispose le flux principal de haut en bas ; essayez LR pour aller de gauche à droite. Check est un identifiant stable, tandis que le texte entre guillemets constitue le libellé visible. Conservez les identifiants lorsque vous reformulez les libellés pour préserver les connexions. Les accolades créent des décisions et |Oui| nomme une flèche. La référence des organigrammes (en anglais) présente les autres formes et le regroupement d’étapes en sous-graphes.
Montrer le parcours d’une requête sans résultat en cache
Un diagramme de séquence aide à suivre une requête entre plusieurs composants. Cet exemple rend explicite l’absence d’un résultat en cache : l’API ne lit la base de données que si le cache ne contient pas le produit.
sequenceDiagram
participant Browser as Navigateur
participant API
participant Cache
participant DB as Base de données
Browser->>API: GET /products/42
API->>Cache: Chercher le produit 42
alt Présent en cache
Cache-->>API: Produit
else Absent du cache
Cache-->>API: Introuvable
API->>DB: Lire le produit 42
DB-->>API: Produit
API->>Cache: Mémoriser le produit
end
API-->>Browser: 200 OK avec le produit
Lisez les messages de haut en bas. Ici, les flèches pleines représentent les requêtes et les pointillés les réponses ; alt et else décrivent des chemins alternatifs. Ajoutez une autre alternative si le produit peut aussi manquer dans la base. Ce diagramme décrit un échange prévu, pas des temps de réponse mesurés ni un test de l’API. La référence des diagrammes de séquence (en anglais) présente les boucles, les notes et les interactions parallèles.
Distinguer l’état d’un élément de l’action qui le modifie
Choisissez un diagramme d’états lorsque la question importante est de savoir si une transition est autorisée. Un ticket peut être résolu puis rouvert ; sa fermeture termine le cycle représenté ici.
stateDiagram-v2
state "Ouvert" as Open
state "En cours" as InProgress
state "En attente" as Waiting
state "Résolu" as Resolved
state "Fermé" as Closed
[*] --> Open
Open --> InProgress: Attribuer
InProgress --> Waiting: Demander des précisions
Waiting --> InProgress: Recevoir la réponse
InProgress --> Resolved: Fournir une solution
Resolved --> Open: Rouvrir
Resolved --> Closed: Confirmer la résolution
Closed --> [*]
Les libellés après : nomment les événements déclencheurs. [*] indique le début ou la fin selon le sens de la flèche. Demandez au responsable du processus si un ticket fermé peut être rouvert : si oui, il manque une transition. Le diagramme aide à repérer cette question, mais ne décide pas de la règle. La référence des diagrammes d’états (en anglais) décrit aussi les états imbriqués.
Préciser les relations avant de détailler tous les champs
Ce petit modèle de commandes indique qu’un client peut n’avoir aucune commande, mais qu’une commande doit contenir au moins une ligne. Il permet de s’accorder sur ces règles avant de créer les tables ou les données échangées par une API.
erDiagram
CLIENT ||..o{ COMMANDE : passe
COMMANDE ||--|{ LIGNE_COMMANDE : contient
CLIENT {
int id PK
string email
}
COMMANDE {
int id PK
int client_id FK
}
LIGNE_COMMANDE {
int commande_id PK, FK
int numero_ligne PK
int quantite
}
|| signifie exactement un, o{ zéro ou plusieurs et |{ un ou plusieurs. La relation en pointillés indique qu’une commande possède une identité indépendante de celle du client ; la relation pleine représente des lignes identifiées au sein d’une commande. PK et FK annotent les clés primaires et étrangères sans créer de contraintes dans une base. Si les brouillons de commande vides sont autorisés, modifiez la cardinalité des lignes. La référence entité-association (en anglais) détaille cette notation.
Rendre visibles les dépendances d’un petit projet
Ce planning enchaîne rédaction, relecture et publication. Modifier la durée de rédaction décale les tâches qui en dépendent, ce qui facilite la discussion sur les conséquences d’un retard.
gantt
title Publication de la documentation
dateFormat YYYY-MM-DD
excludes weekends
section Préparation
Plan :outline, 2026-11-02, 2d
Rédaction :draft, after outline, 3d
section Publication
Relecture :review, after draft, 2d
Publication :milestone, after review, 0d
draft et review sont des identifiants de tâche ; after draft exprime une dépendance. Avec excludes weekends, les durées excluent les jours de week-end, même si les barres restent continues. Les dates sont données à titre d’exemple. Ce dessin de planning ne gère pas les ressources : il ne connaît pas les disponibilités de l’équipe et n’impose aucune échéance. La référence Gantt (en anglais) explique les dates, les exclusions et les jalons.
Les avantages de Mermaid et ses limites
Mermaid convient bien aux diagrammes qui évoluent avec une spécification, un article d’assistance ou un projet logiciel :
- Les changements se relisent. Une comparaison de versions peut montrer qu’une étape ou une relation a changé. Écrivez une relation par ligne pour faciliter cette relecture.
- La source reste près de l’explication. Conservez le diagramme avec le document et relisez-les dans la même modification. Cela facilite la maintenance, sans garantir une mise à jour automatique.
- La disposition demande moins de travail. Le placement automatique est pratique pour de petits processus ou échanges, notamment lorsque les libellés changent souvent.
Les contreparties comptent tout autant :
- Le placement précis est limité. Ajouter une connexion peut réorganiser le dessin. Si l’espacement exact, les annotations à main levée ou une composition graphique soignée sont prioritaires, un outil de dessin visuel sera généralement plus adapté.
- La syntaxe s’apprend. Une ponctuation manquante ou la syntaxe d’une autre famille peut empêcher le rendu. Partez d’un exemple fonctionnel et ajoutez une idée à la fois.
- Les grands diagrammes deviennent difficiles à lire. L’accumulation de nœuds et de croisements peut masquer le message malgré une source valide. Séparez la vue d’ensemble des processus détaillés plutôt que de tout réduire sur une page.
- La portabilité se vérifie. Une plateforme documentaire peut utiliser une autre version de Mermaid ou une configuration différente. Testez sur la destination, surtout avec une syntaxe récente, des icônes ou des styles.
Intégrer un diagramme dans un README ou un document
Sur une plateforme compatible, placez la source dans un bloc Markdown délimité et étiqueté mermaid :
```mermaid
flowchart LR
Draft["Brouillon"] --> Review["Relecture"] --> Publish["Publication"]
```
Le guide des diagrammes de GitHub explique où les utiliser et comment vérifier la version de Mermaid. D’autres systèmes Markdown nécessitent un module complémentaire ; un bloc de code ne suffit pas à faire dessiner le diagramme par tous les moteurs.
Pour une présentation ou un document sans prise en charge de Mermaid, insérez une image et conservez sa source à côté. L’image est un instantané : modifier la source ne met pas à jour une image déjà insérée. Vérifiez le résultat à sa taille finale, car les longs libellés et les petits caractères peuvent devenir illisibles.
Rendre le diagramme utile à ses lecteurs
Définissez son périmètre : “Traitement d’une absence en cache” renseigne mieux que “Architecture du système” pour l’exemple d’API ci-dessus. Utilisez des verbes pour les actions, des noms pour les entités et des libellés sur les chemins de décision. Incluez le scénario d’échec ou de reprise dont les lecteurs auront le plus besoin.
Expliquez les règles importantes dans le texte voisin et ne faites pas de la couleur le seul moyen de distinguer les résultats. Les options d’accessibilité de Mermaid (en anglais) comprennent accTitle et accDescr pour un titre et une description accessibles. Si vous publiez une image, ajoutez aussi un texte alternatif adapté dans le document de destination ; un PNG ne conserve pas la structure d’accessibilité du SVG Mermaid.
Comment utiliser cet outil
- Choisissez Modèles ou collez du code Mermaid dans Source du diagramme. L’aperçu s’actualise après une courte pause.
- Placez le curseur sur une ligne, puis ouvrez Choisir un bloc avec la flèche à côté du bouton Insérer. Choisir un bloc l’insère ; le bouton principal répète ce choix. Modifiez ses libellés et connexions dans la source. Les blocs utilisent des noms d’exemple ; reliez-les à vos propres nœuds selon vos besoins.
- Utilisez Annuler et Rétablir dans la barre principale. Les icônes au-dessus de la source permettent d’indenter, commenter, dupliquer, rechercher ou parcourir le texte. Parcourir la source liste les lignes non vides et permet d’aller à un numéro de ligne. Rechercher et remplacer utilise du texte littéral, sensible à la casse.
- Utilisez Ctrl/Cmd+Z pour annuler, Ctrl/Cmd+Maj+Z pour rétablir, Ctrl/Cmd+F pour rechercher, Ctrl/Cmd+/ pour commenter ou décommenter et Ctrl/Cmd+[ ou ] pour modifier l’indentation. Utilisez Déplacer les lignes vers le haut/bas ou Alt+Haut/Bas pour déplacer la ligne courante, ou sélectionnez plusieurs lignes pour déplacer un bloc entier en conservant son indentation. La ligne courante et les lignes sélectionnées restent surlignées lorsque vous utilisez la barre d’outils. Tab passe au contrôle suivant.
- L’aperçu commence toujours avec le thème clair, quel que soit le thème du site ; utilisez le lien de thème souligné en pointillés à côté d’Aperçu en direct pour en choisir un autre. Ouvrez Aperçu en plein écran à droite de la barre d’outils de l’aperçu. Chaque vue conserve son propre zoom. Maintenez Ctrl ou Espace et faites glisser pour déplacer un diagramme agrandi, utilisez Ctrl + molette pour zoomer et Ctrl + 0 pour ajuster. Ctrl + plus/moins permet aussi de zoomer lorsque l’aperçu a le focus ou en plein écran (Ctrl + = permet également d’agrandir). Cliquez d’abord dans l’aperçu pour les raccourcis clavier ; les flèches permettent aussi de le faire défiler. Échap ferme le plein écran et les boîtes de dialogue.
- Copiez ou téléchargez la source, ou enregistrez le diagramme en PNG. Si la copie est indisponible, la source est sélectionnée pour une copie manuelle.
Modèles et blocs à insérer
Les modèles et les 36 blocs couvrent douze familles de diagrammes. Le moteur accepte aussi les autres types reconnus par la bibliothèque Mermaid intégrée. Le bouton Insérer sélectionne un bloc adapté lorsque la famille change et conserve sinon le dernier choix. Son menu ouvre une famille à la fois. Les blocs d’une autre famille sont insérés comme références commentées ; ils ne convertissent pas le diagramme actuel.
Enregistrement, source prise en charge et limites
Les téléchargements PNG et source sont gratuits. L’export SVG est réservé à une future offre premium et reste masqué dans la version normale. Les abonnements ne sont pas encore disponibles.
La source reste en mémoire jusqu’à ce que vous quittiez ou rechargiez la page. Il n’y a ni enregistrement automatique, ni compte, ni URL de partage, ni service d’IA. L’ouverture d’un fichier ou le chargement d’un modèle remplace la source actuelle ; cette action peut être annulée. Téléchargez votre source avant de partir.
Utilisez au maximum 30 000 unités UTF-16, 600 lignes et 250 arêtes. Un diagramme complexe peut atteindre plus tôt les limites pratiques du moteur. Les exports PNG sont limités à 4 096 pixels par côté et à environ 12 millions de pixels. Le zoom de l’aperçu ne modifie pas la taille des exports.
Les directives de configuration Mermaid, les en-têtes YAML, les formes, style/classDef, les réglages de thème et les libellés HTML assainis sont pris en charge. La configuration dans la source peut remplacer le thème par défaut de la barre d’outils. Utilisez des icônes Bootstrap comme bi:person ou bi:database ; le jeu d’icônes se charge localement au besoin. Les nœuds image acceptent des URL de données PNG, JPEG ou WebP intégrées, dans la limite de taille de la source.
Les images distantes, les polices et les imports CSS externes ne sont pas chargés. Les liens HTTP(S), e-mail et de fragment valides sont conservés dans les exports SVG ; l’aperçu et le PNG sont des images, donc leurs liens ne sont pas cliquables. Les scripts, gestionnaires d’événements et URL dangereuses sont supprimés ; la source ne peut pas modifier les limites de sécurité ou de ressources. Les erreurs de Mermaid peuvent apparaître en anglais. Un rendu invalide ou en cours efface l’aperçu et désactive les téléchargements d’images, pour éviter de confondre un ancien diagramme avec la source actuelle.
Vos données restent dans votre navigateur
Cet outil traite vos données sur votre appareil. Le texte, les fichiers ou les mots de passe saisis et les résultats produits ne sont envoyés ni à nos serveurs ni à un autre serveur.
Le chargement des pages et de leurs ressources génère des requêtes. En production, les pages chargent aussi Google Tag Manager, Cloudflare Web Analytics et les publicités AdSense ; le code des outils ne transmet ni vos saisies ni vos résultats aux services de mesure ou de publicité. Consultez notre politique de confidentialité.
Pour examiner les requêtes pendant l'utilisation de l'outil, ouvrez les outils de développement de votre navigateur, puis l'onglet Réseau. Faites un essai avec des données fictives.
Consultez Comment examiner les requêtes réseau dans Chrome, Firefox, Edge et Safari.