Шпаргла за mermaid синтаксу
Mermaid има велику референцу и мали подскуп који покрива скоро све што људи цртају. Ова страница је баш тај подскуп: облици, стрелице, груписање, боје и по један пример за копирање за сваки тип дијаграма. Сваки фрагмент испод се рендерује такав какав је — налепите га у едитор да видите.
Најкраћи дијаграм који ради
Flowchart-у треба једна линија декларације и једна стрелица. TD значи одозго надоле; за широке процесе боље одговара LR, слева удесно.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B и C су id-јеви чворова — интерна имена, никад исцртани. Текст у заградама је ознака, а стил заграда бира облик.
Облици чворова
Облик бира пар граничника око ознаке. Ево оних које вреди запамтити:
| Синтакса | Облик | Уобичајено значење |
|---|---|---|
A[Text] | Правоугаоник | Корак или радња |
A(Text) | Заобљени | Почетна или крајња тачка |
A([Text]) | Пилула | Терминатор |
A[[Text]] | Потпрограм | Позив другог процеса |
A[(Text)] | Цилиндар | База података или складиште |
A((Text)) | Круг | Спој |
A{Text} | Ромб | Одлука |
A{{Text}} | Шестоугао | Припремни корак |
A[/Text/] | Паралелограм | Улаз или излаз |
A[/Text\] | Трапез | Ручна операција |
Стављајте ознаку под наводнике када садржи заграде, две тачке или наводнике: A["Load (raw) data"]. Без наводника парсер вашу интерпункцију тумачи као синтаксу.
Стрелице
| Синтакса | Резултат |
|---|---|
A --> B | Стрелица |
A --- B | Линија без врха |
A -.-> B | Испрекидана стрелица |
A ==> B | Дебела стрелица |
A -->|label| B | Стрелица са ознаком |
A --> B --> C | Ланац у једној линији |
A --> B & C | Један извор, две мете |
Дужина стрелице је такође битна: --> је један ниво, ---> гура мету за још један ниво даље. То је најједноставнија контрола распореда коју mermaid нуди.
Груписање подграфовима
subgraph исцртава означени оквир око чворова. Подграфови се могу угнеждивати, а стрелице слободно прелазе њихове границе.
flowchart LR
subgraph api["API"]
H[Handler] --> S[(Postgres)]
end
subgraph worker["Worker"]
Q[Queue] --> W[Job]
end
H --> QБоја и стилови
style боји један чвор. classDef заједно са class боји цео скуп чворова — то вам треба после трећег или четвртог чвора.
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Боје су део изворног кода дијаграма, па преживљавају извоз и путују заједно са фајлом. Ништа овде не зависи од подешавања теме у алату који то рендерује.
По један пример за сваки тип дијаграма
Sequence дијаграм
sequenceDiagram
participant User
participant API
participant DB
User->>API: request
API->>DB: query
DB-->>API: rows
API-->>User: responseДијаграм класа
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogДијаграм стања
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishДијаграм веза између ентитета
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER {
string name
string email
}Gantt дијаграм
gantt
title Project
dateFormat YYYY-MM-DD
section Phase 1
Task 1 :a1, 2026-01-01, 5d
Task 2 :after a1, 5dГде се mermaid рендерује сам од себе
- GitHub — блок ограђен са ```mermaid се рендерује у issue-има, pull request-овима, коментарима и README фајловима.
- GitLab — исти такав блок, у issue-има, merge request-овима и wiki-ју.
- Notion — блок кода са језиком постављеним на Mermaid се рендерује поред изворног кода.
- Obsidian — блок ограђен као mermaid се рендерује у режиму прегледа.
- Сајтови за документацију — Docusaurus, MkDocs Material и VitePress подржавају mermaid блокове.
То је прави разлог да дијаграме држите као mermaid, а не као слике: дијаграм живи у истом текстуалном фајлу као и оно што описује, а код-ревју види шта се у њему променило.
Испробајте било који фрагмент са ове странице
Налепите га у картицу кода и рендерује се тренутно — или изградите исти дијаграм на платну и прочитајте синтаксу у супротном смеру.
Честа питања
Како да направим прелом реда унутар ознаке чвора?
Користите <br> унутар ознаке под наводницима: A["First line<br>Second line"]. Mermaid рендерује ознаку као HTML, па тег ради иако остатак синтаксе није HTML.
Зашто моја ознака ломи дијаграм?
Скоро увек је крива заграда, двотачка или наводник унутар ознаке без наводника око ње. Ставите целу ознаку под двоструке наводнике и парсер ће престати да вашу интерпункцију тумачи као синтаксу.
Могу ли да контролишем распоред?
Само посредно. Изаберите смер (TD, LR, BT, RL), користите дуже стрелице (--->) да раздвојите чворове, и груписати повезане чворове у подграфове. Остало mermaid израчунава сам — овде нема координата.
Коју верзију mermaid-а користи овај едитор?
Mermaid 11, тренутну главну верзију, па се рендерује све што је документовано за синтаксу v10 и v11.