Fișă cu sintaxa mermaid
Mermaid are o referință vastă și un subset restrâns care acoperă aproape tot ce desenează oamenii. Această pagină este acel subset: forme, săgeți, grupare, culori și câte un exemplu de copiat-lipit pentru fiecare tip de diagramă. Fiecare fragment de mai jos se randează exact așa cum e — lipește-l în editor ca să vezi.
Cea mai scurtă diagramă funcțională
Un flowchart are nevoie de o linie de declarare și o săgeată. TD înseamnă de sus în jos; folosește LR pentru de la stânga la dreapta, care se potrivește mai bine proceselor late.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B și C sunt id-uri de noduri — nume interne, niciodată desenate. Textul din paranteze este eticheta, iar stilul parantezei alege forma.
Forme de noduri
Forma este aleasă de perechea de delimitatori din jurul etichetei. Acestea merită reținute:
| Sintaxă | Formă | Sens uzual |
|---|---|---|
A[Text] | Dreptunghi | Un pas sau o acțiune |
A(Text) | Rotunjit | Un punct de start sau final |
A([Text]) | Pilulă | Un terminator |
A[[Text]] | Subrutină | Un apel către alt proces |
A[(Text)] | Cilindru | O bază de date sau un depozit |
A((Text)) | Cerc | Un punct de joncțiune |
A{Text} | Romb | O decizie |
A{{Text}} | Hexagon | Un pas de pregătire |
A[/Text/] | Paralelogram | Intrare sau ieșire |
A[/Text\] | Trapez | O operațiune manuală |
Pune eticheta între ghilimele când conține paranteze, două puncte sau ghilimele: A["Load (raw) data"]. Fără ghilimele, parserul interpretează punctuația ta ca sintaxă.
Săgeți
| Sintaxă | Rezultat |
|---|---|
A --> B | Săgeată |
A --- B | Linie, fără vârf de săgeată |
A -.-> B | Săgeată punctată |
A ==> B | Săgeată groasă |
A -->|label| B | Săgeată cu etichetă pe ea |
A --> B --> C | Lanț, scris pe o singură linie |
A --> B & C | O sursă, două ținte |
Lungimea săgeții contează și ea: --> este un rang, ---> împinge ținta cu încă un rang mai jos. Este cel mai simplu control de layout pe care ți-l oferă mermaid.
Gruparea cu subgrafuri
Un subgraph desenează o casetă etichetată în jurul nodurilor. Subgrafurile se pot imbrica, iar săgețile pot trece liber peste marginile lor.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QCuloare și stilizare
style colorează un singur nod. classDef plus class colorează un set de noduri, ceea ce e util peste trei sau patru noduri.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badCulorile fac parte din sursa diagramei, deci supraviețuiesc exportului și călătoresc odată cu fișierul. Nimic aici nu depinde de o setare de temă în unealta care o randează.
Câte un exemplu pentru fiecare tip de diagramă
Diagramă de secvență
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseDiagramă de clase
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogDiagramă de stare
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishDiagramă entitate-relație
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Diagramă Gantt
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dUnde se randează mermaid din start
- GitHub — un bloc ```mermaid se randează în issues, pull request-uri, comentarii și fișiere README.
- GitLab — același bloc, în issues, merge request-uri și wiki.
- Notion — un bloc de cod cu limbajul setat pe Mermaid se randează lângă sursă.
- Obsidian — un bloc mermaid se randează în modul de previzualizare.
- Site-uri de documentație — Docusaurus, MkDocs Material și VitePress suportă toate blocuri mermaid.
Acesta este motivul real pentru a păstra diagramele ca mermaid și nu ca imagini: diagrama trăiește în același fișier text ca lucrul pe care îl descrie, iar un code review poate vedea ce s-a schimbat în ea.
Încearcă orice fragment de pe această pagină
Lipește-l în fila de cod și se randează instant — sau construiește aceeași diagramă pe pânză și citește sintaxa înapoi.
Întrebări frecvente
Cum adaug o întrerupere de linie în eticheta unui nod?
Folosește <br> în interiorul unei etichete între ghilimele: A["First line<br>Second line"]. Mermaid randează eticheta ca HTML, deci tag-ul funcționează chiar dacă restul sintaxei nu e HTML.
De ce îmi strică eticheta diagrama?
Aproape mereu e o paranteză, un semn de punctuație sau ghilimea nepusă între ghilimele în interiorul etichetei. Pune întreaga etichetă între ghilimele duble și parserul nu mai tratează punctuația ta ca sintaxă.
Pot controla layout-ul?
Doar indirect. Alegi direcția (TD, LR, BT, RL), folosești săgeți mai lungi (--->) pentru a împinge nodurile mai departe unele de altele și grupezi nodurile înrudite în subgrafuri. Mermaid calculează restul — nu există coordonate.
Ce versiune de mermaid folosește acest editor?
Mermaid 11, versiunea majoră actuală, deci tot ce e documentat pentru sintaxa v10 și v11 se randează aici.