Просмотрщик диаграмм Mermaid

Mermaid, это текстовый язык для построения диаграмм: вы обычным текстом описываете, как должна выглядеть диаграмма, а она отрисовывается в SVG. Поддерживаются блок-схемы, диаграммы последовательности, диаграммы классов, конечные автоматы, ER-диаграммы, диаграммы Ганта, круговые диаграммы, интеллект-карты и графы веток Git. Этот просмотрщик запускает официальный парсер Mermaid прямо в браузере и обновляет SVG по мере набора текста, чтобы вы могли спокойно доводить диаграмму до ума, а не коммитить в README наполовину сломанную схему.

Как просмотреть диаграмму Mermaid

  1. 1

    Выберите тип диаграммы

    Блок-схема, последовательность, классы, состояния, ER, Гант, круговая, граф Git, интеллект-карта.

  2. 2

    Напишите синтаксис Mermaid

    Левая панель. Парсер обновляет предпросмотр при каждом нажатии клавиши.

  3. 3

    Следите за отрисовкой SVG

    Правая панель. Ошибки показываются прямо у проблемной строки.

  4. 4

    Экспортируйте результат

    Скопируйте SVG, скачайте PNG или скопируйте исходный код Mermaid, чтобы вставить его в GitHub или MkDocs.

Девять типов диаграмм с первого взгляда

Тип Открывающий синтаксис Для чего использовать
Блок-схема flowchart TD Деревья решений, потоки процессов
Последовательность sequenceDiagram Вызовы API, взаимодействие систем во времени
Диаграмма классов classDiagram ООП-архитектура, доменные модели
Диаграмма состояний stateDiagram-v2 Конечные автоматы
ER-диаграмма erDiagram Схемы баз данных
Диаграмма Ганта gantt Графики проектов
Круговая pie Доли от целого в процентах
Граф Git gitGraph Визуализация топологии веток
Интеллект-карта mindmap Иерархический мозговой штурм

Быстрый старт с блок-схемой

flowchart LR
    A[Start] --> B{Is it working?}
    B -- Yes --> C[Great]
    B -- No --> D[Debug]
    D --> B

Ключевые слова направления: TD сверху вниз, LR слева направо, RL справа налево, BT снизу вверх.

Формы узлов: [rect] прямоугольник, (rounded) со скругленными углами, {diamond} ромб, ((circle)) круг, >flag] флаг, [[subroutine]] подпрограмма.

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

sequenceDiagram
    participant U as User
    participant API
    participant DB
    U->>API: POST /login
    API->>DB: SELECT user
    DB-->>API: record
    API-->>U: 200 + token

->>, сплошная стрелка (запрос), -->>, пунктирная (ответ). participant X as Label назначает короткому имени отображаемую метку.

Частые ошибки

  • Нет переноса строки после открывающего ключевого слова. Первая строка должна содержать только flowchart TD или другое открывающее слово, отдельно от остального кода.
  • Зарезервированные символы в метках узлов. Круглые и квадратные скобки, а также кавычки внутри метки нужно экранировать или заключить метку в двойные кавычки: A["Node (v2)"].
  • Нотация диаграммы классов. Префиксы +public, -private, #protected, ~package; стереотип <<interface>>; <|-- наследование, *-- композиция, o-- агрегация.
  • Формат даты в диаграмме Ганта. По умолчанию YYYY-MM-DD; если у вас другой формат, укажите вверху строку dateFormat YYYY-MM-DD.

Где Mermaid действительно отрисовывается

  • GitHub отрисовывает блоки кода с меткой mermaid в задачах, пул-реквестах и README.md.
  • GitLab тоже: нативная поддержка с 2022 года.
  • MkDocs с плагином pymdown-extensions.
  • Docusaurus и Hugo через плагины.
  • Obsidian со встроенным отрисовщиком.
  • VS Code с расширением для предпросмотра Mermaid.

Часто задаваемые вопросы

GitHub поддерживает большинство типов: блок-схемы, диаграммы последовательности, классов, состояний, ER-диаграммы, диаграммы Ганта и круговые. Более новые типы (journey, mindmap) могут появляться с задержкой. Проверьте диаграмму в черновике задачи, прежде чем коммитить ее в README.

Используйте инструкции classDef и class для назначения узлам CSS-классов. Mermaid также поддерживает настройку темы через блоки директив вверху: %%{init: {"theme": "dark"}}%%.

Да. Предпросмотр отрисовывается в SVG, поэтому вы можете скачать SVG напрямую (масштабируется без потери качества) или экспортировать PNG в разрешении 1x, 2x или 3x.

Чаще всего это зарезервированный символ в метке узла. Оборачивайте метки с круглыми, квадратными скобками или кавычками в двойные кавычки: A["Node name (v2)"]. Сообщение об ошибке указывает на проблемную строку.

Нет. Библиотека Mermaid работает полностью в вашем браузере и отрисовывает диаграмму локально. Никакие данные никуда не передаются.

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор цветовой палитры

Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.