DSH HUB
首页插件商店插件包社区排行榜资源发布指南
插件源码
返回插件目录

shinelon /

shinelon/dsh-mermaid-plugin

已验证

Render mermaid code blocks in DSH chat as diagrams - 在 DSH 聊天中将 mermaid 代码块渲染为图形

★ 0 Stars0 Forks0 IssuesN/A 社区评分0 已确认安装
查看 GitHub
README来源: master@281c0bdc

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 add this 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 empty apply() by protocol; all rendering lives on the client side.
  • UI strings resolve through the injected locale service 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.js by 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

MIT

—/ 5

暂无评分

已验证 DSH bundle

Commit 281c0bdc43a4

社区评论

还没有评论,来写第一条。

DSH HUB

社区维护的 DSH 插件索引。不是 GitHub 或 DeepSeek AI 的官方产品。

社区资源API关于