OCaml termaid

Render Mermaid diagrams as Unicode box-drawing art, suitable for a terminal.

On GitHub

Background:

termaid parses Mermaid diagram syntax and lays it out as Unicode box-drawing art, suitable for a terminal, without a TUI framework dependency. It's an OCaml port of the Rust renderer from xai-org/grok-build.

Example:

termaid <<'EOF'
flowchart TD
  Src[Mermaid text] --> R{render}
  R -->|recognized| P[parse]
  R -->|no match| F[fallback]
  P --> L[layout]
  L --> Cv[canvas]
  Cv --> Art[box art]
  F --> Art
EOF

renders as:

   ┌──────────────┐
   │ Mermaid text │
   └───────┬──────┘
           │
           ▼
      ╭────────╮
      │ render │
      ╰────┬───╯
     ┌─────┴──────┐
     ▼recognized  ▼no match
 ┌───────┐  ┌──────────┐
 │ parse │  │ fallback ├─────┐
 └───┬───┘  └──────────┘     │
     └─────┐                 │
           ▼                 │
      ┌────────┐             │
      │ layout │             │
      └────┬───┘             │
           │                 │
           ▼                 │
      ┌────────┐             │
      │ canvas │             │
      └────┬───┘             │
           │                 │
           ▼                 │
      ┌─────────┐            │
      │ box art │◄───────────┘
      └─────────┘

Devlog:

termaid

Terminal Mermaid rendering for OCaml.