Синтаксис на mermaid — пълна справка с примери

Mermaid има голяма справочна документация и малко подмножество, което покрива почти всичко, което хората рисуват. Тази страница е точно това подмножество: форми, стрелки, групиране, цветове и по един пример за копиране за всеки вид диаграма. Всеки откъс по-долу се изобразява така, както е — постави го в редактора, за да го видиш.

Най-кратката работеща диаграма

Flowchart се нуждае от един ред декларация и една стрелка. TD означава отгоре надолу; използвай LR за отляво надясно, което подхожда по-добре на широки процеси.

flowchart TD
  A[Start] --> B{Ready?}
  B -->|Yes| C[Ship it]
  B -->|No| A
Flowchart с три възела, отгоре надолу.

A, 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: response

Class диаграма

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

State диаграма

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

Entity 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, се изобразява тук.

Още ръководства

  1. Износ на mermaid към PNG или SVG

    Четири начина за извличане на mermaid диаграма — PNG, SVG, .mmd изходен код и Markdown блок — и кога кой е правилният отговор.

  2. Mermaid sequence диаграми

    Участници, видове стрелки, ленти за активност, цикли и alt блокове — целият синтаксис на sequence диаграма с работещи примери.

Отворете редактора. Безплатно — без регистрация.

Празно платно, раздел за код и всяка опция за износ — безплатно, в браузъра ви, точно сега.