CLI Reference
validate · fmt · export · render · md
مرجع CLI
datro CLI راه اصلی برای اعتبارسنجی، قالببندی، صادرات، و رندر فایلهای .dtro از ترمینال یا خط لوله CI شما است.
# Install globally
npm install -g datro
# Or run without installing via npx
npx datro --versiondatro اعتبار سنجی
یک فایل .dtro را تجزیه میکند، هر چهار مجوز اعتبارسنجی را اجرا میکند و عیبیابی را با file:line:col مکان چاپ میکند. هنگامی که خطایی وجود ندارد از 0 خارج می شود (هشدار مجاز است).
# Validate and print human-readable diagnostics
datro validate arch.dtro
# Suppress info-level hints
datro validate arch.dtro --no-info
# Output machine-readable JSON (for CI pipelines, tooling)
datro validate arch.dtro --json✓ arch.dtro
nodes=5 edges=6 groups=1 constraints=1
errors=0 warnings=1 info=1
[W] arch.dtro:38:3 W602 Theme colour 'cache: #C0FFE8' has contrast ratio 1.82:1 ...
[I] arch.dtro:12:1 I003 No meta block found — consider adding one for documentation| Field | Type | Required | Default | Description |
|---|---|---|---|---|
--json | flag | No | — | تشخیص خروجی + آمار IR به عنوان JSON. برای ابزارهای CI و ادغام ویرایشگر مفید است. |
--no-info | flag | No | — | I××× عیبیابی سطح اطلاعات را از خروجی متوقف کنید. |
datro fmt
فرم متعارف یک فایل .dtro را چاپ یا بازنویسی میکند. فرمتگر قطعی است: IR یکسان همیشه خروجی یکسانی را تولید میکند، بنابراین تفاوتها فقط تغییرات واقعی را نشان میدهند.
# Print canonical form to stdout (no file changes)
datro fmt arch.dtro
# Overwrite file with canonical form
datro fmt --write arch.dtro
# CI check — exits non-zero if file is not already canonical
datro fmt --check arch.dtro| Field | Type | Required | Default | Description |
|---|---|---|---|---|
--write | flag | No | — | فایل را در جای خود با فرم متعارف بازنویسی کنید. |
--check | flag | No | — | اگر فایل از قبل متعارف نیست، از حالت غیر صفر خارج شوید - در قلابهای پیشفرض یا CI استفاده کنید. |
قلاب قبل از تعهد
datro fmt --check arch.dtro را به قلاب پیش از ارتکاب خود اضافه کنید تا فرم متعارف همیشه متعهد باشد. این از نویز فرمت کننده در بررسی کد جلوگیری می کند.
صادرات داترو
یک فایل .dtro معتبر را به قالب قابل خواندن ماشین دیگری تبدیل می کند. به طور پیش فرض در stdout چاپ می شود. از --out برای نوشتن در یک فایل استفاده کنید.
# Export to Graphviz DOT (pipe into dot for rendering)
datro export arch.dtro --to dot
# Export to Cytoscape.js JSON
datro export arch.dtro --to cytoscape --out arch.cytoscape.json
# Export the lossless JSON IR (full metadata preserved)
datro export arch.dtro --to json --out arch.ir.json| Field | Type | Required | Default | Description |
|---|---|---|---|---|
--to | string "dot""cytoscape""json" | Yes | — | فرمت هدف |
--out | path | No | — | خروجی را به جای stdout در این مسیر فایل بنویسید. |
- *`dot` - زبان Graphviz DOT. برای رندر سفارشی خارج از زنجیره ابزار، به
dot -Tsvgوارد کنید. - `cytoscape` - Cytoscape.js JSON. وارد کردن مستقیم به هر نمونه Cytoscape برای نمودارهای وب تعاملی.
- `json` - JSON IR بدون تلفات (شئ کامل
DatroIR). در هر چک CI سفارشی، اسکریپت، یا رندر مصرف کنید.
datro render
یک فایل .dtro را به SVG یا PNG پیکسل کامل از طریق Graphviz ارائه میکند. نیاز به نصب باینری dot از Graphviz و روی $PATH دارد.
# Render to SVG (requires Graphviz installed)
datro render arch.dtro --out diagram.svg
# Render to PNG
datro render arch.dtro --out diagram.png| Field | Type | Required | Default | Description |
|---|---|---|---|---|
--out | path | Yes | — | مسیر فایل خروجی پسوند قالب را تعیین می کند: .svg یا .png. |
Graphviz مورد نیاز است
Graphviz را از graphviz.org/download نصب کنید و مطمئن شوید graphviz.org/download روی $PATH شما باشد. اگر CLI پیدا نشد با یک خطای واضح خارج می شود.
datro md
بلوک های کد محصور شده Datro را که در فایل های Markdown جاسازی شده اند را پردازش می کند. دو فرمان فرعی: check (فقط اعتبارسنجی، بدون نیاز به Graphviz) و render (اعتبارسنجی + خروجی SVG/PNG).
# Validate all Datro blocks embedded in a Markdown file
datro md check docs/architecture.md
# Validate and output JSON (CI-friendly)
datro md check docs/architecture.md --json
# Render all blocks to SVG files next to the Markdown file
datro md render docs/architecture.md
# Render to a specific output directory in PNG format
datro md render docs/architecture.md --out-dir public/diagrams --format png
# Continue even when some blocks have errors
datro md render docs/architecture.md --no-failقالب بلوک تعبیه شده
یک بلوک محصور شده را با شناسه زبان datro علامت گذاری کنید. بلوک باید شامل هدر جادویی باشد:
<!-- docs/architecture.md -->
# System Overview
```datro
#!DATRO 1.0
node api { type: gateway label: "API Gateway" }
node svc { type: service label: "Auth Service" }
edge api -> svc { kind: http }
```
Run `datro md render docs/architecture.md` to generate
`docs/architecture-block-1.svg` alongside this file.| Field | Type | Required | Default | Description |
|---|---|---|---|---|
--out-dir | path | No | — | md render - دایرکتوری برای فایلهای خروجی. بهطور پیشفرض در همان فهرستی که فایل Markdown ورودی است، قرار میگیرد. |
--format | string "svg""png" | No | svg | md render - فرمت خروجی. |
--json | flag | No | — | md check - نتایج را بهعنوان JSON بهجای متن قابل خواندن توسط انسان ارائه دهید. |
--no-fail | flag | No | — | به پردازش بلوک های باقی مانده حتی زمانی که برخی از آنها خطا دارند ادامه دهید. از 0 خارج می شود. |
ادغام CI
برای اعمال کیفیت نمودار در هر درخواست کششی، این مراحل را به هر خط لوله CI اضافه کنید:
# .github/workflows/ci.yml (excerpt)
- name: Validate Datro diagrams
run: |
npx datro fmt --check docs/arch.dtro
npx datro validate docs/arch.dtro --no-info
npx datro md check docs/architecture.md --jsonfmt --check- اگر نمودار به صورت متعارف قالب بندی نشده باشد، از کار می افتد.validate --no-info- در هیچ تشخیصی با شدت خطا ناموفق است.md check --json- تمام نمودارهای تعبیه شده را تأیید می کند. خروجی JSON با ابزارهای حاشیه نویسی ادغام می شود.
مراحل بعدی
.dtroرا برای نحو کامل.dtroبخوانید.- یاد بگیرید که چگونه embed diagrams in Markdown را با پلاگین remark یا markdown-it یاد بگیرید.
مرورگر را ترجیح می دهید؟ اعتبارسنجی و رندر بدون نصب چیزی.