Diagram MakerCLI Reference
⌨️

CLI Reference

validate · fmt · export · render · md

CLI-referens

datro-CLI är den primära möjligheten att validera, formatera, exportera och rendrera .dtro-filer från din terminal eller din CI-pipeline.

SH
# Install globally
npm install -g datro

# Or run without installing via npx
npx datro --version
ValidererafmtExporteraRendereramd

att validerar datro

Analyserar en .dtro-fil, gör alla fyra valideringsprocesser och skriver ut diagnoser med file:line:col-spärrplatser. Avslutas 0 om inga fel finns (varningar är tillåta).

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
Exemplarutgåva (1 varning, 1 informationsuppgift, 0 fel → utgång 0)
FieldTypeRequiredDescription
--jsonflagNoAnge diagnoser och IR-statistik som JSON. Användbar för CI-verktyg och redaktörsintegrationer.
--no-infoflagNoSläck diagnosen på informationsnivå `I×××♪ från utgåvan.

attro fmt

Tryck eller skriva om kanonisk form av en .dtro-fil. Formatorn är deterministisk: samma IR producerar alltid samma utgång, så Diffs visar bara verkliga förändringar.

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Överskriv filen direkt i kanonisk form.
--checkflagNoExit inte lika noll om filen inte redan är kanonisk använda i pre-commit hooks eller CI.
💡

Förhandsförpliktelser

Lägg till datro fmt --check arch.dtro i din pre-commit hook så att den kanoniska formen alltid är fastställt. Detta förhindrar formateringsljud vid kodkontroll.

Datrexport

Konverterar en validerad .dtro-fil till ett annat maskinläsbart format. Tryck standard på stdout; använd --out för att skriva in i en fil.

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"
YesTiltäckningsformat.
--outpathNoSkriv utgiften i den här filvägen istället för stdout.
  • `dot` Graphviz DOT-Sprache. Överföring till dot -Tsvg för användardefinierad rendering utanför verktygskedjan.
  • `cytoscape` Cytoscape.js JSON. Direkt import till varje cytoskape instans för interaktiva webbdiagram.
  • `Json` Lossfree JSON IR (fullständig DatroIR-objekt). Använd dem i alla användardefinierade CI-prov, alla skript eller renderare.

Datrendering

Renderar en .dtro-fil via graphviz i pixelförfattad SVG eller PNG. Behöver att installera dot-binar från Graphviz och på $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
--outpathYesUtgångsfilens väg. Förlängningen bestämmer formatet: .svg eller .png.
ℹ️

Grafvis behövs

Installa Graphviz från [graphviz.org/download]](https://graphviz.org/download/) och se till att den är på din $PATH. CLI avslutas med ett tydligt fel om den inte hittas.

datro md

Förädla datro-fändade kodblock som är inbäddade i markdown-filer. Två underkommandon: check (bara validering, ingen grafivis krävs) och render (validering + SVG/PNG-utgåva).

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

Embedded blockformat

Markera en omstängd block med språkinmärkningen datro. Blocket måste innehålla den magiska headeren.:

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-block inbäddad i en markdown-fil
FieldTypeRequiredDescription
--out-dirpathNomd render Förteckning för utgångsfiler. Standardförteckning som den angivna markdownfilen.
--formatstring
"svg""png"
Nomd render utgåva format.
--jsonflagNomd check släppa ut resultat som JSON istället för läsbar text.
--no-failflagNoFortsätt att behandla kvarstående blocker även om de har några fel. Avslutat 0.

IC-integrering

Lägg till dessa steg i varje CI-pipeline för att tvinga diagramkvaliteten på varje dragfråga:

.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 misslyckas om ett diagram inte är kanoniskt formaterat.
  • validate --no-info misslyckas vid varje allvarlig diagnos.
  • md check --json validerar alla inbäddade diagram; JSON-utgåvan kan integreras i noteringsverktyg.

Nästa steg

  • Läs Language Reference för den fullständiga .dtro-syntaxen.
  • Lär dig hur du gör med Remark- eller Markdown-it-plugin [embed diagram i Markdown].
Öppna diagramtillverkaren

Föredra webbläsaren? Validerar och returnerar utan att installera något.

Schema v1 · Updated September 2026