1. Главная
  2. Блог
  3. Учебник

Диаграммы Mermaid в Markdown: блок-схемы, диаграммы последовательности и не только

Рисуйте блок-схемы, диаграммы последовательности, диаграммы Ганта, состояний и круговые прямо в Markdown с Mermaid. Готовые примеры и советы для понятных схем.

Диаграммы объясняют процессы, архитектуру и сроки лучше, чем абзацы текста. Но если рисовать их в графическом редакторе, придётся экспортировать картинки, хранить их рядом с документацией и перерисовывать всё при каждом изменении.

Mermaid решает эту проблему: вы описываете диаграмму несколькими строками текста прямо в Markdown-файле, а программа предпросмотра её рисует. Диаграмма живёт в том же файле, видна в диффах и обновляется так же легко, как предложение. GitHub, GitLab, Obsidian, многие генераторы документации и Markdown Preview Editor отображают Mermaid без дополнительной настройки.

Как добавить диаграмму Mermaid

Создайте блок кода и укажите язык mermaid:

markdown```mermaid
flowchart LR
  A[Пишем] --> B[Смотрим]
  B --> C{Готово?}
  C -- да --> D[Экспорт]
  C -- нет --> A
```

Программа предпросмотра превращает это в:

Пишем Смотрим Готово? Экспорт да нет

Первая строка задаёт тип диаграммы. Всё, что ниже, описывает узлы и связи.

Блок-схемы

Блок-схемы — самый популярный тип диаграмм. Направление указывается после ключевого слова: TD или TB (сверху вниз), BT, LR (слева направо) или RL.

mermaidflowchart TD
  start([Начало]) --> input[/Прочитать файл/]
  input --> valid{Файл корректен?}
  valid -- Да --> save[(Сохранить в базу)]
  valid -- Нет --> error[Показать ошибку]
  error --> input

Скобки вокруг подписи задают форму узла:

Синтаксис Форма
A[Text] Прямоугольник
A(Text) Скруглённый прямоугольник
A([Text]) «Стадион» (овал-таблетка)
A{Text} Ромб — для условий
A[(Text)] Цилиндр базы данных
A((Text)) Круг
A[/Text/] Параллелограмм — для ввода и вывода
A{{Text}} Шестиугольник

Связи: --> — стрелка, --- — линия без стрелки, -.-> — пунктирная стрелка, ==> — жирная. Подпись добавляется так: -- text --> или -->|text|.

Связанные узлы можно сгруппировать с помощью subgraph:

mermaidflowchart LR
  subgraph Browser
    editor[Редактор] --> preview[Предпросмотр]
  end
  preview --> export[HTML / PDF]

Диаграммы последовательности

Диаграммы последовательности показывают, как участники обмениваются сообщениями во времени, — идеально для API, процессов аутентификации и пользовательских сценариев.

mermaidsequenceDiagram
  participant U as Пользователь
  participant A as Приложение
  participant S as Сервер
  U->>A: Нажимает «Войти»
  A->>S: POST /login
  S-->>A: 200 OK + токен
  A-->>U: Показывает панель
  Note over A,S: Токен истекает через 1 час

->> — сплошная стрелка (запрос), -->> — пунктирная (ответ). Note over, Note left of и Note right of добавляют комментарии. Блоки loop, alt/else и opt показывают повторения и ветвления.

Диаграммы Ганта

Диаграмма Ганта превращает список задач во временную шкалу. Задача может начинаться в определённую дату или после другой задачи (after).

mermaidgantt
  title Спринт по документации
  dateFormat YYYY-MM-DD
  section Написание
  План          :done,   a1, 2026-10-01, 2d
  Черновик      :active, a2, after a1, 4d
  section Проверка
  Рецензия      :        a3, after a2, 3d
  Публикация    :milestone, after a3, 0d

Диаграммы состояний

Диаграммы состояний описывают, как что-либо переходит из одного состояния в другое, — заказ, документ, компонент интерфейса.

mermaidstateDiagram-v2
  [*] --> Draft
  Draft --> Review : отправить
  Review --> Draft : нужны правки
  Review --> Published : одобрить
  Published --> [*]

Круговые диаграммы

Чтобы быстро показать доли от целого, круговой диаграмме нужна одна строка на сектор:

mermaidpie title На что уходит время на документацию
  "Написание" : 45
  "Форматирование" : 15
  "Актуализация диаграмм" : 40

Mermaid также поддерживает диаграммы классов, ER-диаграммы, майнд-карты, таймлайны, Git-графы, квадрантные диаграммы и многое другое. Синтаксис каждой описан на официальном сайте Mermaid.

Советы для понятных диаграмм

  • Делайте диаграммы небольшими. Схему больше чем на 15–20 узлов трудно читать. Разбейте её на несколько — по одной на идею.
  • Выбирайте направление осознанно. LR подходит для процессов из нескольких шагов, TD — для иерархий и длинных цепочек, особенно на узких экранах.
  • Используйте короткие ID и понятные подписи. Пишите auth[Проверить сессию], а не используйте подпись как ID, — так связи остаются короткими.
  • Берите в кавычки подписи со спецсимволами: A["Цена: $5 (с налогом)"].
  • Добавляйте комментарии с помощью %% в начале строки. При отрисовке они игнорируются.
  • Смотрите предпросмотр по ходу работы. Пропущенная стрелка или скобка ломает всю диаграмму, поэтому живой предпросмотр избавляет от гадания. В Markdown Preview Editor диаграмма перерисовывается по мере правки, а кнопка Диаграмма Mermaid в расширенном редакторе вставляет стартовый шаблон.

Как делиться документами с диаграммами

Когда вы экспортируете документ в HTML или PDF, диаграммы попадают в него в виде изображений, поэтому читателю не нужен установленный Mermaid. Для формул рядом с диаграммами прочитайте, как писать формулы в Markdown, а для всего остального — таблиц, списков задач, блоков-предупреждений — держите под рукой шпаргалку по Markdown.

Частые вопросы

Поддерживает ли GitHub диаграммы Mermaid?

Да. GitHub отображает блоки кода Mermaid в Markdown-файлах, issues, pull requests и вики. Их также поддерживают GitLab, Azure DevOps, Obsidian и многие генераторы документации.

Почему не отображается диаграмма Mermaid?

Обычно из-за синтаксической ошибки: пропущена стрелка, не закрыта скобка или в подписи есть спецсимвол, не взятый в кавычки. Проверьте и первую строку — в ней должен быть указан допустимый тип диаграммы, например flowchart TD или sequenceDiagram.

Можно ли изменить цвета диаграммы Mermaid?

Mermaid поддерживает темы и инструкции classDef/style для отдельных узлов. Поддержка собственного оформления зависит от платформы, а некоторые программы предпросмотра ограничивают её ради единообразия или безопасности, поэтому делайте диаграммы читаемыми в теме по умолчанию.

Можно ли экспортировать диаграмму Mermaid как картинку?

Markdown Preview Editor встраивает диаграммы как изображения при экспорте документа в HTML, и они попадают в PDF при печати. Чтобы получить отдельный PNG или SVG, воспользуйтесь официальным Mermaid Live Editor или Mermaid CLI — они экспортируют отдельные диаграммы.