Diagram Makerâ€șMarkdown Integration
📄

Markdown Integration

Embed diagrams in .md files with remark or markdown-it

Markdown-integrering

LÀgg in datoriteringar direkt i markdown-filer genom att anvÀnda standardskyddade kodblock. Toolchain erbjuder en mark-plugin (för MDX, Next.js, Astro och Vite) och en markdown-it-plugin (för VitePress, Docusaurus och kunddefinierade pipelines).

AnmÀrkningspluginMarkdown-it-pluginCLI-PipelineSVG · PNG-utgÄva

InlÀggning av en diagram

Markera varje instÀngd kodblock med sprÄkkÀnnandet datro. Blokken mÄste börja med den magiska header #!DATRO 1.0. Plug-in analyserar, validerar och ersÀtter blocket med en inline-SVG (eller <img>, som pÄpekar en renderad PNG).

docs/architecture.md
# System Architecture

The diagram below is generated automatically from source:

```datro
#!DATRO 1.0

meta { title: "Auth Service" }

node client  { type: web      label: "Browser" }
node api_gw  { type: gateway  label: "API Gateway" }
node auth    { type: service  label: "Auth Service" }
node user_db { type: database label: "User DB" }

edge client -> api_gw  { kind: http  label: "POST /login" }
edge api_gw -> auth    { kind: http }
edge auth   -> user_db { kind: query }

layout { direction: LR  algo: dagre }

theme {
  palette { gateway: "#FFD0D0"  service: "#D0E8FF"  database: "#FFE8C0" }
  accessibility { min_contrast: AA }
}
```

> Rendered inline by the datro remark plugin.
â„č

Validering vid byggtid

BÄda plugins utföra den fullstÀndiga fyrapass valideraren under byggandet. Om ett block har en felgrad diagnostiserad misslyckas omedelbart den hÀr bilden med positionen file:line:col.

Block-ID-attribut

LÀgg till id="name" efter öppningsfÀltet för att ge en block ett stabilt identifiering. CLI anvÀnder detta för att namnge utgÄngsfiler och plugins ger det som en datatribut för det omrenderade elementet.

Markdown
```datro id="auth-flow"
#!DATRO 1.0
node a { type: service label: "A" }
node b { type: service label: "B" }
edge a -> b { kind: http }
```
UtgÄngsfilen kommer att gÄ till `architecture-auth-flow.svg` istÀllet för `architecture-block-1.svg`

AnmÀrkningsplugin

AnvÀndning med varje kommentarbaserad pipeline: Next.js MDX, Astro, Gatsby, Unified eller Plain Remark.

SH
npm install datro remark remark-html
Installation
remark.config.mjs
// remark.config.mjs
import remarkDatro from "datro/remark";

const config = {
  plugins: [
    // Transforms ```datro blocks to inline SVG
    [remarkDatro, { format: "svg" }],
  ],
};

export default config;

NĂ€sta.js MDX

next.config.mjs
// next.config.mjs
import remarkDatro from "datro/remark";
import createMDX from "@next/mdx";

const withMDX = createMDX({
  options: {
    remarkPlugins: [[remarkDatro, { format: "svg" }]],
  },
});

export default withMDX({
  pageExtensions: ["js", "jsx", "ts", "tsx", "md", "mdx"],
});
FieldTypeRequiredDescription
formatstring
"svg""png"
NoOmstÀlld utgÄva.
failOnErrorbooleanNoOm false kvarstÄr felaktiga block som skyddad kod, istÀllet för att byggan misslyckas.
outDirstringNoFörteckning för PNG-filer ( PNG-modus). Samma register som kÀllan standard.

Markdown-it-plugin

AnvÀndning med alla markdown-it-pipeliner: VitePress, Docusaurus eller alla Node.js-servrar som anvÀnder markdown-it direkt.

JavaScript
import MarkdownIt from "markdown-it";
import datroPLugin from "datro/markdown-it";

const md = new MarkdownIt();
md.use(datroPLugin, { format: "svg" });

const html = md.render(source);
Direkt anvÀndning med markdown-it
💡

VitePress / Vite

LÀgga till plugin i VitePress för att defineConfig({ markdown: { config: md => md.use(datroPlugin) } }) tillÀgg. För Vite med vite-plugin markdown se Vite-konfigurationsexemplet nedan.

vite.config.ts
// vite.config.ts
import { defineConfig } from "vite";
import mdPlugin from "vite-plugin-markdown";
import remarkDatro from "datro/remark";

export default defineConfig({
  plugins: [
    mdPlugin({
      remarkPlugins: [[remarkDatro, { format: "svg" }]],
    }),
  ],
});

CLI-pipelin (ingen bandel)

Om du inte anvÀnder en bindare, anvÀnd CLI-kommandoen datro md för att behandla markdownfiler direkt. Detta krÀver graphviz för SVG/PNG-utgÄvan, men md check gÄr utan det.

SH
# Render all datro blocks in a markdown file to SVG
datro md render docs/architecture.md --out-dir public/diagrams

# Validate all blocks without rendering (fast, no Graphviz needed)
datro md check docs/architecture.md
  • Bli utgivna filer {markdown-basename}-{block-id}.{svg|png} kallad.
  • AnvĂ€nd --no-fail för att behandla alla block, Ă€ven om det finns nĂ„gra fel anvĂ€ndbart för migrationspipeliner.
  • AnvĂ€nd --json med md check för en strukturerad utgĂ„va i CI-annotationssystem.

NĂ€sta steg

Öppna diagramtillverkaren

Skapa diagram i webblÀsaren och visa dem i förhandsvisningen utan att det behövs nÄgon lokal instÀllning.

Schema v1 · Updated September 2026