dsh-mermaid-plugin
Manifest validRender mermaid code blocks in DSH chat as diagrams - Render mermaid code blocks in DSH chat as diagrams
dsh-mermaid-plugin
English | 中文
A DeepSeek Harness (DSH) client plugin that renders ```mermaid code blocks in chat messages as diagrams — with a diagram/source toggle, light/dark theme following, and source-preserving error fallback.
Features
- Auto detection — finds mermaid code blocks in the chat transcript by code-block banner or first-effective-line matching (leading blank lines,
%%comments and YAML frontmatter are skipped). - 20 diagram types —
flowchart,graph TB/TD/BT/RL/LR,sequenceDiagram,classDiagram,stateDiagram(-v2),erDiagram,journey,gantt,pie,mindmap,timeline,gitGraph,quadrantChart,requirementDiagram,c4Context,sankey-beta,xychart-beta,block-beta,packet-beta,architecture-beta. - Diagram / source toggle — the original code block stays reachable; the host source is hidden by CSS
:has()only while a rendered diagram stands in. - Theme following — re-initializes mermaid (
dark/default) and re-renders when the DSH dark-theme attribute changes. - Error fallback — a broken diagram keeps the source visible and shows the mermaid error message instead of swallowing content.
- Strict sanitization — mermaid runs with
securityLevel: "strict"on a transparent background. - Incremental rendering — a debounced MutationObserver scans for changes; unchanged code is never re-rendered; stale surfaces are cleaned up when their code block disappears.
Install
- One-click from the dsh-market plugin market (Settings → Plugin Market), or
dsh plugin addthis repository from GitHub.
Requires DSH Web. No build step and no npm dependencies are needed — client.js is a prebuilt bundle (mermaid 11.17.2 plus the plugin glue).
How it works
package.json (dsh.bundle.patch) ──► cordis.patch.yml ──► module "mermaid-chat" in host bundle
│
└─ dsh.client: platform web · immediately · inject conversation UI + locale
│
└─ client.js ──► window.__ModuleLoader__.load({ id, factory })
│
└─ apply(ctx): MutationObserver ──► detect ──► lazy-load mermaid ──► render SVG
- The host half (
index.js) is an emptyapply()by protocol; all rendering lives on the client side. - UI strings resolve through the injected
localeservice with built-in zh/en fallback dictionaries. - Plugin disposal disconnects observers, removes the injected style sheet and every surface element.
Repository layout
| File | Kind | Purpose |
|---|---|---|
package.json | hand-written | plugin manifest: exports, dsh.bundle.patch, dsh.client options |
index.js | hand-written | host-half entry, empty apply() |
client.js | prebuilt (~3.4 MB) | mermaid 11.17.2 bundle + plugin logic (registration block at the end of file) |
cordis.patch.yml | hand-written | bundle patch inserting module mermaid-chat |
locale/zh.json, locale/en.json | hand-written | plugin metadata (title/description) |
icon.svg | hand-written | plugin icon |
AGENTS.md | hand-written | repository guide for agents and developers |
Development
- Do not reformat
client.jsby hand — it is a build artifact; its source project is not part of this repository. - Static check (no test/lint scripts exist):
node --check index.js && node --check client.js - See AGENTS.md for architecture notes, conventions and the manual verification checklist.
License
Comments
Loading…
Similar plugins
by baconbao
Preview Mermaid diagrams as images via local rendering in DSH Web when the chat message contains a Mermaid fenced code block, and also allow integration with external rendering servers.
★ 3
MIT
JavaScript
Sep 29, 2026
dsh plugin --profile web add @baconbao/dsh-mermaid-image-previewby AKS1st
在 DSH Web 会话中把 Mermaid 代码围栏渲染为 SVG 图表 | Render Mermaid code fences as SVG diagrams in DSH Web messages
★ 9
↓ 526/wk
MIT
TypeScript
Aug 18, 2026
dsh plugin --profile web add dsh-mermaidRenders mermaid code blocks in the chat as diagrams in place (flowchart, sequence, class, state, ER, gantt, pie), with zoom, source toggle, copy PNG and SVG download.
★ 0
dsh plugin --profile web add @dsh-local/dsh-diagramMermaid diagram renderer for the Web UI conversation: renders mermaid code blocks into interactive cards (zoom, fit-width, fullscreen viewer, preview/code toggle) with official UI primitives, and keep
★ 0
↓ 204/wk
dsh plugin --profile web add dsh-mermaid-renderby lj970926
DeepSeek Harness web client plugin: render mermaid code blocks with a chart/source toggle.
★ 4
↓ 25/wk
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-plugin-mermaidby XiaoBinGan
Render settled ```mermaid fences in the dsh Web GUI chat as SVG diagrams — hardened output, source toggle, and a code-block fallback that never loses the source.
★ 0
MIT
JavaScript
Sep 23, 2026
dsh plugin --profile web add dsh-mermaid-fence