Mermaid syntaxe: tahák
Mermaid má rozsáhlou referenci a malou podmnožinu, která pokrývá téměř všechno, co lidé kreslí. Tahle stránka je právě ta podmnožina: tvary, šipky, seskupování, barvy a jeden příklad ke zkopírování pro každý typ diagramu. Každý úryvek níže se vykreslí přesně tak, jak je — vložte ho do editoru a uvidíte.
Nejkratší diagram, který funguje
Flowchart potřebuje jeden deklarační řádek a jednu šipku. TD znamená shora dolů; pro širší procesy se hodí LR, zleva doprava.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B a C jsou id uzlů — interní jména, která se nikdy nevykreslí. Text v hranatých závorkách je popisek a styl závorek určuje tvar.
Tvary uzlů
Tvar se volí podle páru oddělovačů kolem popisku. Tyhle stojí za zapamatování:
| Syntaxe | Tvar | Obvyklý význam |
|---|---|---|
A[Text] | Obdélník | Krok nebo akce |
A(Text) | Zaoblený | Začátek nebo konec |
A([Text]) | Pilulka | Terminátor |
A[[Text]] | Podprogram | Volání jiného procesu |
A[(Text)] | Válec | Databáze nebo úložiště |
A((Text)) | Kruh | Spojovací bod |
A{Text} | Kosočtverec | Rozhodnutí |
A{{Text}} | Šestiúhelník | Přípravný krok |
A[/Text/] | Rovnoběžník | Vstup nebo výstup |
A[/Text\] | Lichoběžník | Ruční operace |
Popisek uzavřete do uvozovek, obsahuje-li závorky, dvojtečky nebo uvozovky: A["Load (raw) data"]. Bez uvozovek parser interpunkci vyhodnotí jako syntaxi.
Šipky
| Syntaxe | Výsledek |
|---|---|
A --> B | Šipka |
A --- B | Čára bez hrotu |
A -.-> B | Tečkovaná šipka |
A ==> B | Tlustá šipka |
A -->|label| B | Šipka s popiskem |
A --> B --> C | Řetězec na jednom řádku |
A --> B & C | Jeden zdroj, dva cíle |
Délka šipky má také význam: --> je jedna úroveň, ---> posune cíl o úroveň dál. Je to nejjednodušší způsob, jak mermaid ovlivnit rozvržení.
Seskupování přes subgraph
subgraph nakreslí kolem uzlů popsaný rámeček. Podgrafy lze vnořovat a šipky mohou volně křížit jejich hranice.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QBarvy a styly
style obarví jeden uzel. classDef spolu s class obarví celou skupinu, což se hodí nad tři čtyři uzly.
flowchart TD
A[OK] --> B[Failed]
style A fill:#16a34a,stroke:#333,color:#fff
classDef bad fill:#dc2626,stroke:#333,color:#fff
class B badBarvy jsou součástí zdroje diagramu, takže přežijí export a putují se souborem. Nic tu nezávisí na nastavení motivu v nástroji, který diagram vykresluje.
Jeden příklad pro každý typ diagramu
Sekvenční diagram
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseClass diagram
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogState diagram
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishER diagram
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Gantt diagram
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dKde se mermaid vykresluje sám od sebe
- GitHub — blok ```mermaid v uvozovkách se vykreslí v issues, pull requestech, komentářích i README souborech.
- GitLab — stejný blok, v issues, merge requestech i na wiki.
- Notion — kódový blok s jazykem nastaveným na Mermaid se vykreslí vedle zdroje.
- Obsidian — mermaid blok v uvozovkách se vykreslí v náhledu.
- Dokumentační weby — Docusaurus, MkDocs Material i VitePress podporují mermaid bloky.
To je ten skutečný důvod, proč diagramy uchovávat jako mermaid místo obrázků: diagram žije ve stejném textovém souboru jako věc, kterou popisuje, a code review v něm vidí, co se změnilo.
Vyzkoušejte kterýkoli úryvek na téhle stránce
Vložte ho do kódové karty a hned se vykreslí — nebo si stejný diagram postavte na plátně a syntaxi si přečtěte zpětně.
Časté dotazy
Jak vložím zalomení řádku uvnitř popisku uzlu?
Použijte <br> uvnitř popisku v uvozovkách: A["First line<br>Second line"]. Mermaid vykresluje popisek jako HTML, takže tag funguje, i když zbytek syntaxe HTML není.
Proč mi popisek rozbije diagram?
Skoro vždy jde o neuvozorněnou závorku, kulatou závorku, dvojtečku nebo uvozovku uvnitř popisku. Celý popisek zabalte do dvojitých uvozovek a parser přestane vaši interpunkci vyhodnocovat jako syntaxi.
Můžu ovlivnit rozvržení?
Jen nepřímo. Zvolte směr (TD, LR, BT, RL), delšími šipkami (--->) uzly rozestrčte, a příbuzné uzly seskupte do podgrafů. Zbytek dopočítá mermaid — souřadnice neexistují.
Kterou verzi mermaid tenhle editor používá?
Mermaid 11, aktuální hlavní verzi, takže se vykreslí vše, co je zdokumentované pro syntaxi v10 i v11.