Markdown Integration
Embed diagrams in .md files with remark or markdown-it
التكامل تخفيض السعر
قم بتضمين مخططات Datro مباشرة في ملفات Markdown باستخدام كتل التعليمات البرمجية المسيجة القياسية. توفر سلسلة الأدوات مكوّنًا إضافيًا للتعليقات (لـ MDX وNext.js وAstro وVite) ومكوّنًا إضافيًا لـmarkdown-it (لـ VitePress وDocusaurus وخطوط الأنابيب المخصصة).
تضمين رسم تخطيطي
قم بتمييز أي مجموعة تعليمات برمجية مسيجة باستخدام معرف اللغة datro. يجب أن تبدأ الكتلة بالرأس السحري #!DATRO 1.0. يقوم البرنامج الإضافي بتوزيع الكتلة والتحقق من صحتها واستبدالها بملف 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.التحقق من الصحة في وقت البناء
يقوم كلا المكونين الإضافيين بتشغيل أداة التحقق الكاملة من أربعة تمريرات أثناء الإنشاء. إذا كانت أي كتلة تحتوي على تشخيص لخطورة الخطأ، فسيفشل البناء فورًا في موقع file:line:col.
سمة معرف الكتلة
أضف id="name" بعد سياج الفتح لإعطاء الكتلة معرفًا ثابتًا. يستخدم سطر الأوامر هذا عند تسمية ملفات الإخراج، وتعرضها المكونات الإضافية كسمة بيانات على العنصر المقدم.
```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، أو Unified، أو الملاحظة البسيطة.
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;Next.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 فقط). الافتراضي هو نفس الدليل مثل الملف المصدر. |
تخفيض السعر البرنامج المساعد
استخدمه مع أي مسار تخفيض السعر: VitePress أو Docusaurus أو أي خادم Node.js يستخدم تخفيض السعر مباشرة.
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، أضف المكون الإضافي إلى 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 (بدون مجمع)
إذا كنت لا تستخدم أداة تجميع، فاستخدم أوامر 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لمعالجة كافة الكتل حتى في حالة وجود أخطاء في بعضها — وهو أمر مفيد لخطوط أنابيب الترحيل. - استخدم
--jsonمعmd checkللإخراج المنظم في أنظمة التعليقات التوضيحية CI.
الخطوات التالية
- اقرأ Language Reference للحصول على بناء جملة
.dtroالكامل. - اقرأ علامات CLI Reference لـ
datro md renderوتكامل CI.
إنشاء الرسوم البيانية ومعاينتها في المتصفح دون أي إعداد محلي.