Полное руководство по диаграммам Mermaid.js

Научитесь создавать профессиональные диаграммы с помощью простого текстового синтаксиса

Что такое Mermaid.js?

Mermaid — это инструмент для построения диаграмм и графиков на основе JavaScript, который использует текстовые определения в стиле Markdown для динамического создания и изменения диаграмм. Это open-source проект, позволяющий генерировать диаграммы из простых текстовых описаний.

Вместо сложных инструментов рисования вы пишете кодоподобный синтаксис, описывающий диаграмму, и Mermaid рендерит её как визуальную диаграмму. Такой подход делает диаграммы версионируемыми, простыми в обновлении и идеальными для документации.

Mermaid легко интегрируется с платформами документации, вики и файлами Markdown, поэтому это любимый инструмент разработчиков и технических писателей.

Почему стоит использовать Mermaid.js?

  • Контроль версий: диаграммы — это текстовые файлы, поэтому их можно отслеживать в Git вместе с кодом
  • Быстрые обновления: измените несколько строк текста вместо перерисовки целых диаграмм
  • Согласованность: Mermaid автоматически управляет раскладкой и стилями, обеспечивая единообразные диаграммы
  • Не нужны инструменты дизайна: не требуется Visio, Lucidchart или другие дорогие инструменты
  • Документация как код: храните диаграммы в том же репозитории, что и документацию
  • Кроссплатформенность: работает в браузерах и Node.js и интегрируется со многими платформами
  • Бесплатно и с открытым исходным кодом: без лицензионных затрат, активное сообщество
  • Множество типов диаграмм: поддерживает блок-схемы, диаграммы последовательностей, диаграммы классов и др.

Поддерживаемые типы диаграмм

Mermaid поддерживает широкий набор типов диаграмм для различных задач документации:

Блок-схема

Визуализируйте рабочие процессы, процессы и деревья решений с помощью узлов и ребер.

flowchart TD
    A[Start] --> B{Decision}
    B -->|Yes| C[Process]
    B -->|No| D[Alternative]
    C --> E[End]
    D --> E

Сценарий использования: Процессные потоки, алгоритмы, логика принятия решений

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

Показывает взаимодействия между разными участниками или системами во времени.

sequenceDiagram
    participant User
    participant API
    participant DB
    User->>API: Request data
    API->>DB: Query
    DB-->>API: Results
    API-->>User: Response

Сценарий использования: Взаимодействия API, коммуникация систем, пользовательские потоки

Диаграмма классов

Моделируйте объектно-ориентированные системы с классами, атрибутами и отношениями.

classDiagram
    class Animal {
        +String name
        +int age
        +makeSound()
    }
    class Dog {
        +bark()
    }
    Animal <|-- Dog

Сценарий использования: Архитектура ПО, ООП-дизайн, схемы баз данных

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

Представляет состояния и переходы в системе или процессе.

stateDiagram-v2
    [*] --> Idle
    Idle --> Loading: Start
    Loading --> Success: Complete
    Loading --> Error: Fail
    Success --> [*]
    Error --> Idle: Retry

Сценарий использования: Машины состояний, управление жизненным циклом, состояния UI

ER-диаграмма

Моделирует структуры баз данных и связи между сущностями.

erDiagram
    CUSTOMER ||--o{ ORDER : places
    ORDER ||--|{ LINE_ITEM : contains
    CUSTOMER {
        int id
        string name
        string email
    }

Сценарий использования: Проектирование БД, моделирование данных, архитектура системы

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

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

gantt
    title Project Timeline
    dateFormat YYYY-MM-DD
    section Phase 1
    Design :a1, 2024-01-01, 30d
    Development :a2, after a1, 45d

Сценарий использования: Планирование проектов, таймлайны спринтов, дорожные карты

Круговая диаграмма

Показывает пропорциональные данные и проценты визуально.

pie title Distribution
    "Category A" : 42
    "Category B" : 30
    "Category C" : 28

Сценарий использования: Результаты опросов, доля рынка, распределение ресурсов

Граф Git

Визуализируйте стратегии ветвления Git и историю коммитов.

gitGraph
    commit
    branch develop
    checkout develop
    commit
    checkout main
    merge develop

Сценарий использования: Документация Git workflow, стратегии ветвления

Начало работы с Mermaid

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

Начните с выбора типа диаграммы, который лучше всего отображает то, что вы хотите показать. Каждый тип начинается с определенного ключевого слова, например 'flowchart', 'sequenceDiagram' или 'classDiagram'.

2. Напишите текстовый синтаксис

Используйте простой синтаксис Mermaid для описания диаграммы. Синтаксис интуитивен и читается почти как естественный язык. Например, 'A --> B' создаёт стрелку от A к B.

3. Предпросмотр диаграммы

Используйте наш онлайн‑просмотрщик или любой инструмент, совместимый с Mermaid, чтобы увидеть диаграмму в реальном времени. При необходимости вносите изменения, пока не будете довольны.

4. Экспорт и совместное использование

Экспортируйте диаграмму в SVG или PNG для презентаций или поделитесь URL с командой. Mermaid также можно встраивать прямо в файлы Markdown.

Лучшие практики

  • Сосредотачивайте диаграммы на одном концепте или рабочем процессе
  • Используйте осмысленные метки, описывающие реальную бизнес-логику
  • Разбивайте сложные диаграммы на более мелкие взаимосвязанные диаграммы
  • Добавляйте комментарии с помощью %% для объяснения сложных разделов
  • Используйте последовательные правила именования в диаграммах
  • Тестируйте диаграммы в целевой среде перед финализацией
  • При необходимости добавляйте подсказки направления (TD, LR) для управления компоновкой
  • Используйте subgraph для группировки связанных узлов в блок-схемах
  • Используйте параметры стиля умеренно, чтобы сохранить читаемость
  • Храните исходники диаграмм под версионным контролем вместе с кодом

Типовые сценарии использования

Документация ПО

Документируйте архитектуру системы, API‑потоки и взаимодействия компонентов вместе с кодом.

Планирование проектов

Создавайте диаграммы Ганта для планирования спринтов, графиков проектов и распределения ресурсов.

Технические предложения

Визуализируйте предлагаемые решения, дизайн систем и архитектурные решения.

Пользовательские пути

Отображайте пользовательские потоки, клиентский опыт и шаблоны взаимодействия.

Проектирование баз данных

Моделируйте отношения сущностей, структуру схем и зависимости данных.

Документация процессов

Документируйте бизнес‑процессы, рабочие процессы и стандартные операционные процедуры.

Учебные материалы

Создавайте понятные, версионируемые диаграммы для уроков и технических курсов.

Документация API

Иллюстрируйте потоки запрос/ответ, последовательности аутентификации и взаимодействия эндпоинтов.

Дополнительные ресурсы

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

Распространенные вопросы об использовании Mermaid Viewer и создании диаграмм

Готовы создать свою первую диаграмму?

Попробуйте наш бесплатный онлайн‑просмотрщик Mermaid и начните создавать профессиональные диаграммы за считанные минуты.

Открыть Mermaid Viewer