English | Español | 中文 | Українська | Русский
Плагін VitePress, який додає підтримку різних типів діаграм за допомогою сервісу Kroki. Плагін автоматично перетворює блоки коду діаграм у SVG-зображення, кешує їх локально та забезпечує чисте, налаштовуване відображення з опціональними підписами.
Використання зовнішнього сервісу вимагає підключення до Інтернету під час збірки, але надає значні переваги порівняно зі створенням зображення на клієнті (величезний бандл і падіння продуктивності) та створенням зображення на сервері (складність - mermaid потребує puppeteer для цього, наприклад).
- Підтримка багатьох типів діаграм (Mermaid, PlantUML, GraphViz та інші)
- Автоматична генерація SVG з кешуванням (після генерації кешується локально до зміни коду діаграми)
- Опціональні підписи до діаграм
- Налаштовувані шляхи виводу
- Чистий, семантичний HTML-вивід
- Можливість використання будь-якого редактора для створення діаграм (наприклад, VS Code з розширенням Mermaid)
pnpm add -D vitepress-plugin-diagrams
yarn
yarn add -D vitepress-plugin-diagrams
npm
npm install --save-dev vitepress-plugin-diagrams
- Додайте до конфігурації VitePress (
.vitepress/config.ts
):
import { defineConfig } from "vitepress";
import { configureDiagramsPlugin } from "vitepress-plugin-diagrams";
export default defineConfig({
markdown: {
config: (md) => {
configureDiagramsPlugin(md, {
diagramsDir: "docs/public/diagrams", // Опціонально: користувацька директорія для SVG файлів
publicPath: "/diagrams", // Опціонально: користувацький публічний шлях для зображень
});
},
},
});
- Створення діаграм у markdown:
```mermaid
graph TD
A[Початок] --> B{Рішення}
B -->|Так| C[Прийняти]
B -->|Ні| D[Скасувати]
```
<!-- diagram id="1" caption: "Діаграма потоку системи" -->
Функція метаданих діаграм надає додатковий контекст та ідентифікацію. Ви можете додавати метадані до своїх діаграм, використовуючи спеціальні HTML-коментарі.
<!-- diagram id="1" caption: "Діаграма потоку системи" -->
- Призначення унікального ID кожній діаграмі для запобігання переповненню кешу (необов'язково, якщо ви не змінюєте та не regenerуєте діаграми)
- Додавання пояснювальних описів під діаграмою (необов'язково)
Mermaid, PlantUML, GraphViz, BlockDiag, BPMN, Bytefield, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag, C4 (з PlantUML), D2, DBML, Ditaa, Erd, Excalidraw, Nomnoml, Pikchr, Structurizr, Svgbob, Symbolator, TikZ, UMlet, Vega, Vega-Lite, WaveDrom, WireViz
Переглянути повний список підтримуваних діаграм →
Опція | Тип | За замовчуванням | Опис |
---|---|---|---|
diagramsDir |
string |
"docs/public/diagrams" |
Директорія для зберігання SVG файлів |
publicPath |
string |
"/diagrams" |
Публічний шлях для доступу до файлів |
<figure class="vpd-diagram vpd-diagram--[diagramType]">
<img
src="[publicPath]/[diagramType]-[hash].svg"
alt="[diagramType] Diagram"
class="vpd-diagram-image"
/>
<figcaption class="vpd-diagram-caption">
[caption]
</figcaption>
</figure>
Ви можете налаштувати класи CSS
відповідно до вашої теми.
При оновленні діаграми ви можете побачити placeholder зображення. Це нормально, тому що svg файл завантажується асинхронно і може не відобразитися відразу. Просто перезавантажте сторінку.
MIT
Ми вітаємо внесок у розвиток проекту! Перед відправкою Pull Request, будь ласка, створіть issue для обговорення запропонованих змін.
Цей плагін використовує сервіс Kroki для генерації діаграм.