Используйте Vite и Mermaid для динамического построения диаграмм.
Обзор
В этой статье давайте воспользуемся Vite и Mermaid для создания прототипа простого приложения для построения динамических диаграмм.
Vite - это инструмент сборки, который призван обеспечить более быструю и экономичную разработку современных веб-проектов. Вы можете использовать его с обычным Javascript / Typescript или вашими любимыми фреймворками, такими как React, Vue, Preact, LitElement или Svelte.
Mermaid - это инструмент для построения диаграмм и диаграмм на основе Javascript, который отображает текстовые определения, вдохновленные Markdown, для динамического создания и изменения диаграмм.
Использование текстового подхода для построения диаграмм дает несколько преимуществ.
- Теперь контролировать версии стало проще. Разработчик может легко отслеживать изменения, внесенные в диаграммы. Диаграммы теперь рассматриваются как часть репозитория исходного кода.
- С помощью такого инструмента, как "Русалка", я могу визуализировать диаграмму сразу после внесения изменений.
Настройка Vite
Давайте начнем с настройки Vite.
Я создаю ванильный проект Typescript под названием vite-mermaid
, запустив yarn create vite
.
❯ yarn create vite yarn create v1.22.11 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages... success Installed "[email protected]" with binaries: - create-vite - cva ✔ Project name: … vite-mermaid ✔ Select a framework: › vanilla ✔ Select a variant: › vanilla-ts Scaffolding project in /home/alpha2phi/workspace/dev/alpha2phi/vite-mermaid/vite-mermaid... Done. Now run: cd vite-mermaid yarn yarn dev Done in 18.74s.
Запустите yarn install
и yarn run dev
, чтобы убедиться, что приложение работает.
❯ yarn install yarn install v1.22.11 warning package.json: No license field warning [email protected]: No license field [1/4] Resolving packages... success Already up-to-date. Done in 0.13s. ❯ yarn run dev
Настройка русалки
Теперь создайте папку с именем diagram
и загрузите в нее диаграммы Русалочки.
Например. Я создаю несколько примеров диаграмм, как показано ниже.
Вот пример ER-диаграммы.
erDiagram CUSTOMER ||--o{ ORDER : places ORDER ||--|{ LINE-ITEM : contains CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
Теперь откройте index.html
и добавьте код для рендеринга диаграмм русалок в виде изображений SVG.
Я включаю библиотеку Javascript Mermaid и инициализирую ее при загрузке приложения.
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script> <script> mermaid.initialize({ startOnLoad: true }); ....
Я использую Javascript fetch
API для чтения диаграмм Mermaid с сервера и вызываю Mermaid API для визуализации диаграмм в формате SVG.
<script> function showGraph(name, id) { fetch("/diagrams/" + name) .then((response) => response.text()) .then((data) => { var svg = mermaid.render("svg_" + id, data); var elem = document.getElementById(id); elem.innerHTML = svg; }); } document.addEventListener("DOMContentLoaded", function (event) { showGraph("flowchart.mmd", "g1"); showGraph("sequence_diagram.mmd", "g2"); showGraph("user_journey.mmd", "g3"); showGraph("er.mmd", "g4"); }); </script>
Резюме
В этой статье я использую только API-интерфейсы Mermaid Javascript для визуализации диаграмм. Есть несколько способов развернуть Mermaid в соответствии с вашими требованиями.
Текстовые схемы при написании технической документации можно найти в этой статье.
Исходный код этого приложения можно найти в этом репозитории.
Если вы еще не являетесь участником Medium и хотите им стать, нажмите здесь. (Часть вашей абонентской платы будет использована для поддержки alpha2phi.)