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

דאטרו לאמת

מנתח קובץ .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אבחון פלט + נתונים סטטיסטיים של IR כ-JSON. שימושי עבור כלי CI ושילובי עורך.
--no-infoflagNoדחק I××× אבחון ברמת המידע מהפלט.

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צא ללא אפס אם הקובץ לא כבר קנוני - השתמש ב-pre-commit hooks או CI.
💡

וו טרום התחייבות

הוסף את datro fmt --check arch.dtro ל-Pre-commit Hook שלך כך שהטופס הקנוני תמיד מחויב. זה מונע רעש מעצב בבדיקת קוד.

יצוא דאטרו

ממיר קובץ .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 מותאמת אישית, סקריפט או renderer.

דאטרו 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 וודא ש-dot נמצא ב-$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 משתלב עם כלי הערות.

השלבים הבאים

פתח את יוצר הדיאגרמות

מעדיפים את הדפדפן? אימות ועיבוד מבלי להתקין דבר.

Schema v1 · Updated September 2026