Mermaid
Introduction
Mermaid est une bibliothèque de diagrammes et de visualisation basée sur JavaScript, qui permet de créer des diagrammes et des organigrammes à l’aide de descriptions textuelles. Mermaid est fréquemment utilisé dans les documents Markdown (par exemple, sur GitHub, GitLab ou Confluence) pour représenter visuellement des relations complexes.
Avantages de Mermaid :
- Intégration simple dans les documents Markdown.
- Aucun outil externe nécessaire – les diagrammes sont rendus directement dans le navigateur.
- Prend en charge une grande variété de types de diagrammes.
- Idéal pour la documentation, les présentations et les spécifications techniques.
Types de diagrammes possibles
Organigramme (Flowchart)
Les organigrammes visualisent des processus ou des flux de travail. Ils sont composés de nœuds (étapes) et de connexions (flèches) représentant la séquence des étapes.
Exemple :
flowchart TD
A[Début] --> B{Décision}
B -->|Oui| C[Processus 1]
B -->|Non| D[Processus 2]
C --> E[Fin]
D --> E
flowchart TD
A[Début] --> B{Décision}
B -->|Oui| C[Processus 1]
B -->|Non| D[Processus 2]
C --> E[Fin]
D --> E
Explication :
flowchart TD: Définit un organigramme de haut en bas.A[Début]: Un nœud avec l’étiquette “Début”.-->: Connexion entre les nœuds.|Oui|et|Non|: Étiquettes pour les connexions.
Diagramme de classes (Class Diagram)
Les diagrammes de classes montrent la structure des classes, leurs attributs, leurs méthodes et leurs relations entre elles.
Exemple :
classDiagram
class Animal {
-nom: String
+manger()
}
class Chien {
+aboyer()
}
Animal <|-- Chien
classDiagram
class Animal {
-nom: String
+manger()
}
class Chien {
+aboyer()
}
Animal <|-- Chien
Explication :
classDiagram: Définit un diagramme de classes.AnimaletChien: Classes avec attributs (-nom) et méthodes (+manger()).<|--: Relation d’héritage (Chien hérite d’Animal).
Diagramme de séquence (Sequence Diagram)
Les diagrammes de séquence visualisent les interactions entre des objets ou des acteurs dans un ordre chronologique.
Exemple :
sequenceDiagram
Alice->>Bob: Bonjour !
Bob-->>Alice: Bonjour en retour !
sequenceDiagram
Alice->>Bob: Bonjour !
Bob-->>Alice: Bonjour en retour !
Explication :
sequenceDiagram: Définit un diagramme de séquence.Alice->>Bob: Message d’Alice à Bob.-->>: Réponse de Bob à Alice.
Diagramme Entité-Association (ER Diagram)
Les diagrammes ER montrent les relations entre les entités dans une base de données.
Exemple :
erDiagram
CLIENT ||--o{ COMMANDE : places
CLIENT {
int id PK
string nom
}
COMMANDE {
int id PK
date date
}
erDiagram
CLIENT ||--o{ COMMANDE : places
CLIENT {
int id PK
string nom
}
COMMANDE {
int id PK
date date
}
Explication :
erDiagram: Définit un diagramme ER.CLIENT ||--o{ COMMANDE: Un client a plusieurs commandes.PK: Clé primaire.
Diagramme d’états (State Diagram)
Les diagrammes d’états montrent les états d’un système et les transitions entre ces états.
Exemple :
stateDiagram-v2
s1 --> Arrêt
Arrêt --> Marche: Allumer
Marche --> Arrêt: Éteindre
stateDiagram-v2
s1 --> Arrêt
Arrêt --> Marche: Allumer
Marche --> Arrêt: Éteindre
Explication :
stateDiagram-v2: Définit un diagramme d’états.[*]: État de départ.Arrêt --> Marche: Transition de “Arrêt” à “Marche” via “Allumer”.
Diagramme heuristique (Mindmap)
Les cartes heuristiques visualisent des idées ou des concepts hiérarchiques.
Exemple :
mindmap
root((Sujet))
Branche 1
Sous-sujet 1
Sous-sujet 2
Branche 2
Sous-sujet 3
mindmap
root((Sujet))
Branche 1
Sous-sujet 1
Sous-sujet 2
Branche 2
Sous-sujet 3
Explication :
mindmap: Définit une carte heuristique.root((Sujet)): Sujet central.- Les indentations définissent la hiérarchie.
Diagramme d’exigences (Requirement Diagram)
Les diagrammes d’exigences montrent les exigences et leurs relations.
Exemple :
requirementDiagram
requirement Exigence1 {
id: 1
text: "Le système doit être sécurisé."
}
element Système {
type: "logiciel"
}
Système - satisfies -> Exigence1
requirementDiagram
requirement Exigence1 {
id: 1
text: "Le système doit être sécurisé."
}
element Système {
type: "logiciel"
}
Système - satisfies -> Exigence1
Explication :
requirementDiagram: Définit un diagramme d’exigences.requirement: Définit une exigence.satisfies: Relation entre un élément et une exigence.
Diagramme de Gantt
Les diagrammes de Gantt visualisent les plans de projet et les calendriers.
Exemple :
gantt
title Plan de projet
dateFormat YYYY-MM-DD
section Phase 1
Tâche 1 :a1, 2024-01-01, 7d
Tâche 2 :after a1, 3d
gantt
title Plan de projet
dateFormat YYYY-MM-DD
section Phase 1
Tâche 1 :a1, 2024-01-01, 7d
Tâche 2 :after a1, 3d
Explication :
gantt: Définit un diagramme de Gantt.dateFormat: Format des dates.Tâche 1 :a1, 2024-01-01, 7d: La tâche 1 dure 7 jours à partir du 1er janvier 2024.
Chronologie (Timeline)
Les chronologies montrent les événements dans un ordre chronologique.
Exemple :
timeline
title Événements importants 2024 : Événement 1
2025 : Événement 2
timeline
title Événements importants 2024 : Événement 1
2025 : Événement 2
Explication :
timeline: Définit une chronologie.2024 : Événement 1: Événement en l’année 2024.
Informations complémentaires
Liens web
Feedback
Cette page est-elle utile?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.