@woxqaq/mermaid-rs-renderer-js
v0.1.4
Published
Fast native Mermaid rendering for Node.js, powered by mermaid-rs-renderer
Readme
mermaid-rs-renderer-js
Native Node.js bindings for mermaid-rs-renderer. It renders Mermaid diagrams directly in Rust without Chromium, Puppeteer, or a browser runtime.
Install
pnpm add mermaid-rs-renderer-jsRender
render runs on Node.js's worker pool. Use renderSync only when blocking the event loop is acceptable.
import { render, Theme } from 'mermaid-rs-renderer-js'
const svg = await render('flowchart LR; A-->B-->C', {
theme: Theme.Dark,
nodeSpacing: 60,
rankSpacing: 80,
preferredAspectRatio: 16 / 9,
})CommonJS is supported too:
const { renderSync } = require('mermaid-rs-renderer-js')
const svg = renderSync('sequenceDiagram\nAlice->>Bob: Hello')API
render(source: string, options?: RenderOptions): Promise<string>
renderSync(source: string, options?: RenderOptions): string
measure(source: string, options?: RenderOptions): Promise<SvgDimensions>
measureSync(source: string, options?: RenderOptions): SvgDimensions
validate(source: string): Promise<void>
validateSync(source: string): void
renderWithTiming(source: string, options?: RenderOptions): Promise<RenderTiming>
renderWithTimingSync(source: string, options?: RenderOptions): RenderTimingBuilt-in themes are modern, default, dark, forest, and neutral. A Mermaid %%{init: ...}%% directive can override theme variables and layout configuration for one diagram.
The supported Mermaid syntax and current rendering limitations follow the upstream renderer.
Development
pnpm install
pnpm build:debug
pnpm test
pnpm test:rust
pnpm checkLicense
MIT
