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| A
Un flowchart cu trei noduri, de sus în jos.

A, 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]DreptunghiUn pas sau o acțiune
A(Text)RotunjitUn punct de start sau final
A([Text])PilulăUn terminator
A[[Text]]SubrutinăUn apel către alt proces
A[(Text)]CilindruO bază de date sau un depozit
A((Text))CercUn punct de joncțiune
A{Text}RombO decizie
A{{Text}}HexagonUn pas de pregătire
A[/Text/]ParalelogramIntrare sau ieșire
A[/Text\]TrapezO 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 --> BSăgeată
A --- BLinie, fără vârf de săgeată
A -.-> BSăgeată punctată
A ==> BSăgeată groasă
A -->|label| BSăgeată cu etichetă pe ea
A --> B --> CLanț, scris pe o singură linie
A --> B & CO 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 --> Q
Două servicii, fiecare cu propriul depozit.

Culoare ș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 bad

Culorile 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: response

Diagramă de clase

classDiagram
  class Animal {
    +String name
    +move()
  }
  class Dog {
    +bark()
  }
  Animal <|-- Dog

Diagramă de stare

stateDiagram-v2
  [*] --> Idle
  Idle --> Running: start
  Running --> Idle: stop
  Running --> [*]: finish

Diagramă 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, 5d

Unde 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.

Alte ghiduri

  1. Export mermaid în PNG sau SVG

    Patru moduri de a scoate o diagramă mermaid — PNG, SVG, sursă .mmd și un bloc Markdown — și când fiecare e răspunsul potrivit.

  2. Diagrame de secvență mermaid

    Participanți, tipuri de săgeți, bare de activare, bucle și blocuri alt — toată sintaxa diagramei de secvență cu exemple funcționale.

Deschide editorul. Gratuit — fără cont.

O pânză goală, o filă de cod și toate opțiunile de export — gratuit, în browser, chiar acum.