Offline Diagrams

by Typora Team · v1.0.0 · updated Oct 17, 2026

Graphviz, erd, Vega, Vega-Lite, WaveDrom, nomnoml and BPMN code blocks drawn on your computer: no server, no network.

Markdown ExtensionDiagramNo permissionsdiagramgraphvizdoterdvegavega-litewavedromnomnomlbpmnumlchartoffline
Offline Diagrams in Typora

Permissions

No permissions. It cannot use the network, the clipboard or your files, and only sees what Typora hands it.

Sandboxed pages. Ships HTML views that run in a sandboxed frame and only see what Typora sends them.

What it adds

Code block renderers
```graphviz, ```dot
```erd
```vega
```vegalite, ```vega-lite
```wavedrom
```nomnoml
```bpmn
Snippets
ER Diagram, Graphviz, Vega-Lite Chart, WaveDrom, nomnoml

Readme

Offline Diagrams

Draws these code blocks on your computer, with libraries that ship in the extension. Nothing is sent anywhere, and it needs no permissions.

FenceDraws
```graphviz, ```dotGraphviz DOT graphs
```erdEntity-relationship diagrams in erd's syntax, laid out by Graphviz
```vega-lite, ```vegaliteVega-Lite charts (JSON)
```vegaVega visualizations (JSON)
```wavedromWaveDrom timing diagrams (WaveJSON)
```nomnomlnomnoml UML diagrams
```bpmnBPMN 2.0 process diagrams (XML with diagram layout)

Diagrams follow the light or dark appearance unless the source sets its own colors. Each library loads the first time one of its diagrams is drawn.

Vega and Vega-Lite charts take their data from "values" in the spec: Typora does not let the extension load data from files or URLs.

Third-party code

vendor/ holds these libraries unchanged from npm, each with its license:

FilePackageLicense
graphviz.js@hpcc-js/wasm-graphviz 1.29.2 (dist/index.js), Graphviz compiled to WebAssemblyApache-2.0 (LICENSE-hpcc-js-wasm-graphviz.txt)
vega.min.jsvega 6.4.0 (build/vega.min.js)BSD-3-Clause (LICENSE-vega.txt)
vega-lite.min.jsvega-lite 6.5.0 (build/vega-lite.min.js)BSD-3-Clause (LICENSE-vega-lite.txt)
wavedrom.unpkg.min.js, wavedrom-dark.jswavedrom 3.7.0 (wavedrom.unpkg.min.js, skins/dark.js)MIT (LICENSE-wavedrom.txt)
nomnoml.js, graphre.jsnomnoml 1.7.0 and graphre 0.1.3 (dist/)MIT (LICENSE-nomnoml.txt, LICENSE-graphre.txt)
bpmn-viewer.production.min.jsbpmn-js 18.31.0 (dist/)bpmn.io license (LICENSE-bpmn-js.txt)

vega-interpreter.js is vega-interpreter 2.3.2 with vega-util 2.1.3 bundled into one readable script by esbuild (esbuild vega-interpreter.entry.js --bundle --format=iife --global-name=vegaInterpreter). Typora's extension pages forbid generated code, so Vega evaluates expressions with the interpreter instead.

bpmn-js asks that its bpmn.io mark stays visible on rendered diagrams; the exported drawing doesn't include the viewer's overlay, so the extension adds a small "Powered by bpmn.io" line under each BPMN diagram.