Ściągawka ze składni mermaid
Mermaid ma obszerną dokumentację i niewielki podzbiór, który pokrywa niemal wszystko, co ludzie rysują. Ta strona to właśnie ten podzbiór: kształty, strzałki, grupowanie, kolory i po jednym przykładzie do skopiowania dla każdego typu diagramu. Każdy fragment poniżej renderuje się bez zmian — wklej go do edytora, aby zobaczyć.
Najkrótszy diagram, który działa
Flowchart potrzebuje jednej linii deklaracji i jednej strzałki. TD oznacza od góry do dołu; użyj LR dla układu od lewej do prawej, który lepiej sprawdza się przy szerokich procesach.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B i C to identyfikatory węzłów — nazwy wewnętrzne, nigdy nierysowane. Tekst w nawiasach to etykieta, a styl nawiasu decyduje o kształcie.
Kształty węzłów
Kształt jest wybierany przez parę ograniczników wokół etykiety. Oto te warte zapamiętania:
| Składnia | Kształt | Zwykłe znaczenie |
|---|---|---|
A[Text] | Prostokąt | Krok lub akcja |
A(Text) | Zaokrąglony | Punkt startu lub końca |
A([Text]) | Pigułka | Terminator |
A[[Text]] | Podproces | Wywołanie innego procesu |
A[(Text)] | Cylinder | Baza danych lub magazyn |
A((Text)) | Koło | Punkt węzłowy |
A{Text} | Romb | Decyzja |
A{{Text}} | Sześciokąt | Krok przygotowawczy |
A[/Text/] | Równoległobok | Wejście lub wyjście |
A[/Text\] | Trapez | Operacja ręczna |
Ujmij etykietę w cudzysłów, gdy zawiera nawiasy, dwukropki lub cudzysłowy: A["Load (raw) data"]. Bez cudzysłowu parser odczyta twoją interpunkcję jako składnię.
Strzałki
| Składnia | Wynik |
|---|---|
A --> B | Strzałka |
A --- B | Linia bez grotu |
A -.-> B | Strzałka kropkowana |
A ==> B | Gruba strzałka |
A -->|label| B | Strzałka z etykietą |
A --> B --> C | Łańcuch zapisany w jednej linii |
A --> B & C | Jedno źródło, dwa cele |
Długość strzałki też ma znaczenie: --> to jeden poziom, ---> przesuwa cel o jeden poziom dalej w dół. To najprostsza kontrola układu, jaką daje mermaid.
Grupowanie za pomocą podgrafów
subgraph rysuje opisany prostokąt wokół węzłów. Podgrafy mogą się zagnieżdżać, a strzałki mogą swobodnie przekraczać ich granice.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QKolor i stylowanie
style maluje jeden węzeł. classDef razem z class maluje cały ich zestaw, co przydaje się już powyżej trzech, czterech węzłów.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badKolory są częścią źródła diagramu, więc przetrwają eksport i wędrują razem z plikiem. Nic tutaj nie zależy od ustawień motywu w narzędziu, które go renderuje.
Po jednym przykładzie na każdy typ diagramu
Diagram sekwencji
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseDiagram klas
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogDiagram stanów
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishDiagram relacji encji
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Wykres Gantta
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dGdzie mermaid renderuje się samodzielnie
- GitHub — otoczony znacznikami blok ```mermaid renderuje się w issues, pull requestach, komentarzach i plikach README.
- GitLab — ten sam blok w znacznikach, w issues, merge requestach i wiki.
- Notion — blok kodu z językiem ustawionym na Mermaid renderuje się obok źródła.
- Obsidian — blok mermaid w znacznikach renderuje się w trybie podglądu.
- Strony dokumentacji — Docusaurus, MkDocs Material i VitePress obsługują bloki mermaid.
To prawdziwy powód, by trzymać diagramy jako mermaid, a nie jako obrazy: diagram żyje w tym samym pliku tekstowym co opisywana przez niego rzecz, a code review widzi, co się w nim zmieniło.
Wypróbuj dowolny fragment z tej strony
Wklej go do zakładki kodu, a wyrenderuje się od razu — albo zbuduj ten sam diagram na płótnie i odczytaj składnię z powrotem.
Najczęściej zadawane pytania
Jak dodać złamanie linii wewnątrz etykiety węzła?
Użyj <br> wewnątrz etykiety w cudzysłowie: A["First line<br>Second line"]. Mermaid renderuje etykietę jako HTML, więc ten znacznik działa, mimo że reszta składni nie jest HTML-em.
Dlaczego moja etykieta psuje diagram?
Niemal zawsze chodzi o niecytowany nawias, nawias okrągły, dwukropek lub cudzysłów wewnątrz etykiety. Ujmij całą etykietę w cudzysłów, a parser przestanie traktować twoją interpunkcję jako składnię.
Czy mogę kontrolować układ?
Tylko pośrednio. Wybierz kierunek (TD, LR, BT, RL), użyj dłuższych strzałek (--->), by rozsunąć węzły dalej od siebie, i grupuj powiązane węzły w podgrafy. Resztę oblicza mermaid — nie ma tu współrzędnych.
Której wersji mermaid używa ten edytor?
Mermaid 11, obecnej głównej wersji, więc renderuje się tu wszystko udokumentowane dla składni v10 i v11.