Markdown Integration
Embed diagrams in .md files with remark or markdown-it
მარკდაუნის ინტეგრაცია
ჩადეთ Datro დიაგრამები პირდაპირ Markdown ფაილებში სტანდარტული შემოღობილი კოდის ბლოკების გამოყენებით. Toolchain უზრუნველყოფს შენიშვნების დანამატს (MDX, Next.js, Astro და Vite-სთვის) და markdown-it plugin (VitePress, Docusaurus და მორგებული მილსადენებისთვის).
დიაგრამის ჩასმა
მონიშნეთ ნებისმიერი შემოღობილი კოდის ბლოკი datro ენის იდენტიფიკატორით. ბლოკი უნდა დაიწყოს #!DATRO 1.0 ჯადოსნური სათაურით. დანამატი აანალიზებს, ამოწმებს და ანაცვლებს ბლოკს inline SVG-ით (ან <img>, რომელიც მიუთითებს გადაღებულ PNG-ზე).
# System Architecture
The diagram below is generated automatically from source:
```datro
#!DATRO 1.0
meta { title: "Auth Service" }
node client { type: web label: "Browser" }
node api_gw { type: gateway label: "API Gateway" }
node auth { type: service label: "Auth Service" }
node user_db { type: database label: "User DB" }
edge client -> api_gw { kind: http label: "POST /login" }
edge api_gw -> auth { kind: http }
edge auth -> user_db { kind: query }
layout { direction: LR algo: dagre }
theme {
palette { gateway: "#FFD0D0" service: "#D0E8FF" database: "#FFE8C0" }
accessibility { min_contrast: AA }
}
```
> Rendered inline by the datro remark plugin.დადასტურება აშენების დროს
ორივე დანამატი აწარმოებს სრულ ოთხგადასასვლელ ვალიდატორს მშენებლობის დროს. თუ რომელიმე ბლოკს აქვს შეცდომის სიმძიმის დიაგნოსტიკა, build მაშინვე ჩავარდება file:line:col მდებარეობით.
ბლოკის ID ატრიბუტი
დაამატეთ id="name" გახსნის ღობის შემდეგ, რათა ბლოკს სტაბილური იდენტიფიკატორი მისცეს. CLI ამას იყენებს გამომავალი ფაილების დასახელებისას და დანამატები ავლენენ მას, როგორც მონაცემთა ატრიბუტს რენდერულ ელემენტზე.
```datro id="auth-flow"
#!DATRO 1.0
node a { type: service label: "A" }
node b { type: service label: "B" }
edge a -> b { kind: http }
```შენიშვნის მოდული
გამოიყენეთ შენიშვნებზე დაფუძნებული ნებისმიერი მილსადენით: Next.js MDX, Astro, Gatsby, ერთიანი ან ჩვეულებრივი შენიშვნა.
npm install datro remark remark-html// remark.config.mjs
import remarkDatro from "datro/remark";
const config = {
plugins: [
// Transforms ```datro blocks to inline SVG
[remarkDatro, { format: "svg" }],
],
};
export default config;შემდეგი.js MDX
// next.config.mjs
import remarkDatro from "datro/remark";
import createMDX from "@next/mdx";
const withMDX = createMDX({
options: {
remarkPlugins: [[remarkDatro, { format: "svg" }]],
},
});
export default withMDX({
pageExtensions: ["js", "jsx", "ts", "tsx", "md", "mdx"],
});| Field | Type | Required | Default | Description |
|---|---|---|---|---|
format | string "svg""png" | No | svg | გამოყვანილი გამომავალი ფორმატი. |
failOnError | boolean | No | true | როდესაც false, შეცდომების მქონე ბლოკები რჩება შემოღობილი კოდის ნაცვლად, აწყობის წარუმატებლობის ნაცვლად. |
outDir | string | No | — | დირექტორია PNG ფაილებისთვის (მხოლოდ PNG რეჟიმი). ნაგულისხმევია იმავე დირექტორიაში, როგორც საწყისი ფაილი. |
markdown-it მოდული
გამოიყენეთ ნებისმიერი markdown-it pipeline: VitePress, Docusaurus ან ნებისმიერი Node.js სერვერი, რომელიც უშუალოდ იყენებს markdown-it.
import MarkdownIt from "markdown-it";
import datroPLugin from "datro/markdown-it";
const md = new MarkdownIt();
md.use(datroPLugin, { format: "svg" });
const html = md.render(source);VitePress / Vite
VitePress-ში დაამატეთ დანამატი defineConfig({ markdown: { config: md => md.use(datroPlugin) } })-ში. Vite-სთვის vite-plugin-markdown-ით იხილეთ Vite კონფიგურაციის მაგალითი ქვემოთ.
// vite.config.ts
import { defineConfig } from "vite";
import mdPlugin from "vite-plugin-markdown";
import remarkDatro from "datro/remark";
export default defineConfig({
plugins: [
mdPlugin({
remarkPlugins: [[remarkDatro, { format: "svg" }]],
}),
],
});CLI მილსადენი (შეფუთვის გარეშე)
თუ არ იყენებთ Bundler-ს, გამოიყენეთ datro md CLI ბრძანებები Markdown ფაილების უშუალოდ დასამუშავებლად. ეს მოითხოვს Graphviz-ს SVG/PNG გამოსასვლელად, მაგრამ md check მუშაობს მის გარეშე.
# Render all datro blocks in a markdown file to SVG
datro md render docs/architecture.md --out-dir public/diagrams
# Validate all blocks without rendering (fast, no Graphviz needed)
datro md check docs/architecture.md- გამომავალი ფაილების სახელია
{markdown-basename}-{block-id}.{svg|png}. - გამოიყენეთ
--no-failყველა ბლოკის დასამუშავებლად მაშინაც კი, როცა ზოგიერთს აქვს შეცდომები - სასარგებლოა მიგრაციის მილსადენებისთვის. - გამოიყენეთ
--jsonmd check-თან ერთად CI ანოტაციის სისტემებში სტრუქტურირებული გამოსავლისთვის.
შემდეგი ნაბიჯები
- წაიკითხეთ
.dtroსრული.dtroსინტაქსისთვის. - წაიკითხეთ
datro md renderdatro md renderდროშებისა და CI ინტეგრაციისთვის.
შექმენით და გადახედეთ დიაგრამებს ბრაუზერში ადგილობრივი დაყენების გარეშე.