Синтаксис на mermaid — пълна справка с примери
Mermaid има голяма справочна документация и малко подмножество, което покрива почти всичко, което хората рисуват. Тази страница е точно това подмножество: форми, стрелки, групиране, цветове и по един пример за копиране за всеки вид диаграма. Всеки откъс по-долу се изобразява така, както е — постави го в редактора, за да го видиш.
Най-кратката работеща диаграма
Flowchart се нуждае от един ред декларация и една стрелка. TD означава отгоре надолу; използвай LR за отляво надясно, което подхожда по-добре на широки процеси.
flowchart TD
A[Start] --> B{Ready?}
B -->|Yes| C[Ship it]
B -->|No| AA, B и C са идентификатори на възли — вътрешни имена, които никога не се изобразяват. Текстът в скобите е етикетът, а стилът на скобите избира формата.
Форми на възлите
Формата се избира чрез двойката разделители около етикета. Тези си струва да се запомнят:
| Синтаксис | Форма | Обичайно значение |
|---|---|---|
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: responseClass диаграма
classDiagram
class Animal {
+String name
+move()
}
class Dog {
+bark()
}
Animal <|-- DogState диаграма
stateDiagram-v2
[*] --> Idle
Idle --> Running: start
Running --> Idle: stop
Running --> [*]: finishEntity relationship диаграма
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 блок се изобразява в issues, pull requests, коментари и README файлове.
- GitLab — същият фенсиран блок, в issues, merge requests и уикито.
- Notion — код блок с език, зададен на Mermaid, се изобразява до изходния код.
- Obsidian — фенсиран mermaid блок се изобразява в режим на преглед.
- Docs сайтове — Docusaurus, MkDocs Material и VitePress поддържат mermaid блокове.
Това е истинската причина диаграмите да остават mermaid, а не изображения: диаграмата живее в същия текстов файл като нещото, което описва, а code review може да види какво точно се е променило в нея.
Изпробвай всеки откъс на тази страница
Постави го в раздела за код и се изобразява мигновено — или изгради същата диаграма на платното и прочети синтаксиса обратно.
Често задавани въпроси
Как да добавя нов ред в етикет на възел?
Използвай <br> вътре в етикет в кавички: A["First line<br>Second line"]. Mermaid изобразява етикета като HTML, затова тагът работи, макар останалата част от синтаксиса да не е HTML.
Защо етикетът ми чупи диаграмата?
Почти винаги причината е скоба, кръгла скоба, двоеточие или кавичка без кавички около нея вътре в етикета. Обгради целия етикет с двойни кавички и парсерът спира да третира пунктуацията ти като синтаксис.
Мога ли да контролирам оформлението?
Само косвено. Избери посока (TD, LR, BT, RL), използвай по-дълги стрелки (--->), за да раздалечиш възлите повече, и групирай свързани възли в подграфи. Mermaid изчислява останалото — няма координати.
Коя версия на mermaid използва този редактор?
Mermaid 11, текущата основна версия, така че всичко, документирано за синтаксиса на v10 и v11, се изобразява тук.