Diagram MakerCLI Reference
⌨️

CLI Reference

validate · fmt · export · render · md

مرجع سطر الأوامر

تعد واجهة سطر الأوامر datro هي الطريقة الأساسية للتحقق من صحة ملفات datro وتنسيقها وتصديرها وعرضها من المحطة الطرفية أو خط أنابيب CI.

SH
# Install globally
npm install -g datro

# Or run without installing via npx
npx datro --version
التحقق من صحةfmtيصدّريجعلدكتور في الطب

التحقق من صحة البيانات

يوزع ملف .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
مثال على الإخراج (تحذير واحد، تلميح معلومات واحد، 0 أخطاء → خروج 0)
FieldTypeRequiredDescription
--jsonflagNoتشخيصات الإخراج + إحصائيات الأشعة تحت الحمراء مثل JSON. مفيد لأدوات CI وتكاملات المحرر.
--no-infoflagNoمنع I××× تشخيصات مستوى المعلومات من الإخراج.

داترو 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.

تقديم داترو

يعرض ملف .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.org/download وتأكد من وجود dot على $PATH. يخرج سطر الأوامر (CLI) بخطأ واضح إذا لم يتم العثور عليه.

داترو إم دي

يعالج كتل التعليمات البرمجية المسيجة 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 لفرض جودة الرسم التخطيطي على كل طلب سحب:

.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 مع أدوات التعليقات التوضيحية.

الخطوات التالية

افتح صانع المخططات

تفضل المتصفح؟ التحقق من صحة وتقديم دون تثبيت أي شيء.

Schema v1 · Updated September 2026