Diagram MakerCLI Reference
⌨️

CLI Reference

validate · fmt · export · render · md

مرجع CLI

datro CLI راه اصلی برای اعتبارسنجی، قالب‌بندی، صادرات، و رندر فایل‌های .dtro از ترمینال یا خط لوله CI شما است.

SH
# Install globally
npm install -g datro

# Or run without installing via npx
npx datro --version
اعتبار سنجیfmtصادراتارائه دهدmd

datro اعتبار سنجی

یک فایل .dtro را تجزیه می‌کند، هر چهار مجوز اعتبارسنجی را اجرا می‌کند و عیب‌یابی را با file:line:col مکان چاپ می‌کند. هنگامی که خطایی وجود ندارد از 0 خارج می شود (هشدار مجاز است).

SH
# 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
SH
✓ 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
خروجی مثال (1 هشدار، 1 راهنمایی اطلاعات، 0 خطا → خروج 0)
FieldTypeRequiredDescription
--jsonflagNoتشخیص خروجی + آمار IR به عنوان JSON. برای ابزارهای CI و ادغام ویرایشگر مفید است.
--no-infoflagNoI××× عیب‌یابی سطح اطلاعات را از خروجی متوقف کنید.

datro fmt

فرم متعارف یک فایل .dtro را چاپ یا بازنویسی می‌کند. فرمت‌گر قطعی است: IR یکسان همیشه خروجی یکسانی را تولید می‌کند، بنابراین تفاوت‌ها فقط تغییرات واقعی را نشان می‌دهند.

SH
# 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
FieldTypeRequiredDescription
--writeflagNoفایل را در جای خود با فرم متعارف بازنویسی کنید.
--checkflagNoاگر فایل از قبل متعارف نیست، از حالت غیر صفر خارج شوید - در قلاب‌های پیش‌فرض یا CI استفاده کنید.
💡

قلاب قبل از تعهد

datro fmt --check arch.dtro را به قلاب پیش از ارتکاب خود اضافه کنید تا فرم متعارف همیشه متعهد باشد. این از نویز فرمت کننده در بررسی کد جلوگیری می کند.

صادرات داترو

یک فایل .dtro معتبر را به قالب قابل خواندن ماشین دیگری تبدیل می کند. به طور پیش فرض در stdout چاپ می شود. از --out برای نوشتن در یک فایل استفاده کنید.

SH
# 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
FieldTypeRequiredDescription
--tostring
"dot""cytoscape""json"
Yesفرمت هدف
--outpathNoخروجی را به جای 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 دارد.

SH
# Render to SVG (requires Graphviz installed)
datro render arch.dtro --out diagram.svg

# Render to PNG
datro render arch.dtro --out diagram.png
FieldTypeRequiredDescription
--outpathYesمسیر فایل خروجی پسوند قالب را تعیین می کند: .svg یا .png.
ℹ️

Graphviz مورد نیاز است

Graphviz را از graphviz.org/download نصب کنید و مطمئن شوید graphviz.org/download روی $PATH شما باشد. اگر CLI پیدا نشد با یک خطای واضح خارج می شود.

datro md

بلوک های کد محصور شده Datro را که در فایل های Markdown جاسازی شده اند را پردازش می کند. دو فرمان فرعی: check (فقط اعتبارسنجی، بدون نیاز به Graphviz) و render (اعتبارسنجی + خروجی SVG/PNG).

SH
# 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 علامت گذاری کنید. بلوک باید شامل هدر جادویی باشد:

Markdown
<!-- 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.
بلوک Datro در یک فایل Markdown تعبیه شده است
FieldTypeRequiredDescription
--out-dirpathNomd render - دایرکتوری برای فایل‌های خروجی. به‌طور پیش‌فرض در همان فهرستی که فایل Markdown ورودی است، قرار می‌گیرد.
--formatstring
"svg""png"
Nomd render - فرمت خروجی.
--jsonflagNomd check - نتایج را به‌عنوان JSON به‌جای متن قابل خواندن توسط انسان ارائه دهید.
--no-failflagNoبه پردازش بلوک های باقی مانده حتی زمانی که برخی از آنها خطا دارند ادامه دهید. از 0 خارج می شود.

ادغام CI

برای اعمال کیفیت نمودار در هر درخواست کششی، این مراحل را به هر خط لوله CI اضافه کنید:

.github/workflows/ci.yml
# .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 --json
  • fmt --check - اگر نمودار به صورت متعارف قالب بندی نشده باشد، از کار می افتد.
  • validate --no-info - در هیچ تشخیصی با شدت خطا ناموفق است.
  • md check --json - تمام نمودارهای تعبیه شده را تأیید می کند. خروجی JSON با ابزارهای حاشیه نویسی ادغام می شود.

مراحل بعدی

  • .dtro را برای نحو کامل .dtro بخوانید.
  • یاد بگیرید که چگونه embed diagrams in Markdown را با پلاگین remark یا markdown-it یاد بگیرید.
دیاگرام ساز را باز کنید

مرورگر را ترجیح می دهید؟ اعتبارسنجی و رندر بدون نصب چیزی.

Schema v1 · Updated September 2026