CLI Reference
validate · fmt · export · render · md
CLI მითითება
datro CLI არის თქვენი ტერმინალიდან ან CI მილსადენიდან .dtro ფაილების ვალიდაციის, ფორმატირების, ექსპორტისა და რენდერის ძირითადი გზა.
# 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-ში. |
წინასწარ ჩადება hook
დაამატეთ 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 შემოწმებაში, სკრიპტში ან რენდერერში.
დატრო რენდერი
გადასცემს .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 შემოღობილი კოდის ბლოკებს, რომლებიც ჩაშენებულია 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 შენიშვნის ან მონიშვნის მოდულით.
ბრაუზერი გირჩევნია? გადამოწმება და რენდერი არაფრის ინსტალაციის გარეშე.