Как мне справедливо заметил один мой читатель — я упустил главное — упомянуть что такое этот «Obsidian».
Исправляюсь.
Как написано на сайте разработчика https://Obsidian.md — Бесплатное и гибкое приложение для ваших личных мыслей. А так как мы с вами тут заняты интеллектуальным трудом, то для всех нас.
Обсидиан это удобный текстовый редактор на максималках, который отлично встраивается в решение современных задач, где очень важно зафиксировать мысль, связи мысли и прочий контекст, в том числе для работы с агентами.
Для работы с LLM и агентами особенно удобно то, что Обсидиан сохраняет все материалы в файлах формата *.md, который отлично понимается всеми LLM и агентами.
Переносим работу по созданию аналитики для дальнейшей разработки в связку Obsidian + GIT, как я описывал в предыдущей статье — и мы практически готовы работать в новом фреймворке.
Но что делать, если для аналитики нужна диаграмма? Obsidian нативно поддерживает верстку mermaid диаграмм и это не сложно!
Дам короткую шпаргалку по диаграммам и один небольшой лайфхак.
1. Формы объектов
В flowchart формы задаются через символы в конце идентификатора узла (перед текстом):
| Символ | Форма | Когда использовать |
|---|---|---|
[Текст] | Прямоугольник | Обычные действия, шаги |
[[Текст]] | Двойной прямоугольник | Граница процесса, подпроцесс |
((Текст)) | Круг (двойная рамка) | Start / End события |
{{Текст}} | Параллелограмм | Данные, ввод/вывод |
{Текст} | Ромб | Условия, решения Yes/No |
([Текст]) | Цилиндр | Хранилища данных, базы |
В коде выглядит так:
```mermaid
flowchart LR
A["Обычный шаг"]
B{"Условие?"}
C[["Документ"]]
2. Если нужен BPMN
BPMN-диаграммы рисуются через flowchart с правильными формами:
Основные элементы BPMN
| BPMN элемент | Синтаксис Mermaid | Стиль |
|---|---|---|
| Start Event | StartNode("Начало"):::start | Круг, зелёная обводка |
| End Event | EndNode("Конец"):::end | Круг, красная обводка |
| Task / Activity | [Выполнить работу]:::task | Прямоугольник |
| Exclusive Gateway (XOR) | {Флаг?}:::gateway | Ромб, жёлтый фон |
| Parallel Gateway (AND) | {+}:::gateway | Ромб со знаком |
| Intermediate Event | ([Промежуток]):::boundary | Двойной круг, толстая рамка |
💡 Важно: Для BPMN-событий (круги) используй кавычки в тексте вместо фигурных скобок
(Text), так как Mermaid путает вложенные скобки. Фигура задаётся черезClassName("текст"):::style.
Пример BPMN диаграммы
Код:
```mermaid
flowchart TD
%% Стили для BPMN элементов
classDef start fill:#d1fae5,stroke:#10b981,stroke-width:2px;
classDef task fill:#dbeafe,stroke:#3b82f6,stroke-width:2px;
classDef gateway fill:#fef3c7,stroke:#f59e0b,stroke-width:2px;
classDef finish fill:#fee2e2,stroke:#ef4444,stroke-width:2px;
classDef boundary stroke-width:4px;
StartNode("Начало"):::start
Task1["Сбор требований"]:::task
Gateway{"Бюджет > 100к?"}:::gateway
Task2A["Full-stack разработка"]:::task
Task2B["Только мобильное"]:::task
EndNode("Конец"):::finish
StartNode -- Task1 --> Gateway
Gateway -.- Да -.-> Task2A --> EndNode
Gateway -- Нет --> Task2B ==> EndNode
Пример:
flowchart TD
%% Стили для BPMN элементов
classDef start fill:#d1fae5,stroke:#10b981,stroke-width:2px;
classDef task fill:#dbeafe,stroke:#3b82f6,stroke-width:2px;
classDef gateway fill:#fef3c7,stroke:#f59e0b,stroke-width:2px;
classDef finish fill:#fee2e2,stroke:#ef4444,stroke-width:2px;
classDef boundary stroke-width:4px;
StartNode("Начало"):::start
Task1["Сбор требований"]:::task
Gateway{"Бюджет > 100к?"}:::gateway
Task2A["Full-stack разработка"]:::task
Task2B["Только мобильное"]:::task
EndNode("Конец"):::finish
StartNode -- Task1 --> Gateway
Gateway -.- Да -.-> Task2A --> EndNode
Gateway -- Нет --> Task2B ==> EndNode
Правила оформления BPMN
- Start/End events: используй
Name("Текст"):::style— так Mermaid корректно рендерит круги, даже с русским текстом внутри - Gateway:
{Текст}:::gateway— ромб, подписывай?для вопросов - Стрелки: используй
-->для sequence flow,-.-для message flow
3. Стрелки и связи
Типы стрелок
| Синтаксис | Вид | Описание |
|---|---|---|
--> | → | Сплошная линия |
-.- | ┄┄┄ | Пунктирная линия |
-.-> | ┅┅┅ | Толстая пунктирная |
==> | === | Жирная сплошная |
--- | ─── | Просто линия (без стрелки) |
4. Подгруппы
```mermaid
flowchart LR
subgraph Phase1["Фаза 1"]
A["Шаг 1"]
B["Шаг 2"]
end
subgraph Phase2["Фаза 2"]
C["Шаг 3"]
end
A --> B --> C
Визуал
flowchart LR
subgraph Phase1["Фаза 1"]
A["Шаг 1"]
B["Шаг 2"]
end
subgraph Phase2["Фаза 2"]
C["Шаг 3"]
end
A --> B --> C
Шпаргалка для базы,для углубленного изучения оставлю ссылку на документацию:
https://mermaid.ai/open-source/syntax/flowchart.html
Лайфхак
В папке шаблонов создайте черновики с наиболее часто используемыми диаграммами и выверенным стилем. В момент, где в документе нужна диаграмма через панель команд, или назначенным сочетанием клавиш вставляете и дорабатываете диаграмму уже по смыслу, не думая об оформлении.
Шаблоны как шпаргалки в Obsidian очень полезны — рекомендую использовать их и для элементов текста, и в целом для форматов статей, где важна структура.