dsh-mermaid-smooth
其他 活跃维护

dsh-mermaid-smooth

gitByteFree/dsh-mermaid-smooth

支持将聊天场景中的mermaid代码围栏默认渲染为可交互图表,提供平滑的缩放平移操作,可单独控制每个图表的显示状态,无需额外配置即可直接查看流程图、时序图等结构图。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
728 KB
仓库大小
26 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:gitByteFree/dsh-mermaid-smooth
git clone https://github.com/gitByteFree/dsh-mermaid-smooth.git
git clone git@github.com:gitByteFree/dsh-mermaid-smooth.git
README.md main

dsh-mermaid-smooth

English | 中文

Render mermaid code fences in DeepSeek Harness (dsh) web chat as diagrams by
default, with smooth zoom and pan, a per-fence diagram/code toggle at each
card's top-right, a persisted per-fence preference, dark-mode follow, and a
fully bundled offline engine (zero CDN).

  • Default diagram — fences in assistant messages render as SVG diagrams
    the moment they are complete; non-mermaid code blocks are untouched.
  • Smooth interaction — cursor-anchored wheel zoom over one composed
    transform (with a short ease-out), direct pointer drag, double-click to
    fit. Reduced-motion preferences disable all easing.
  • Toggle at top-right — every diagram card has a 图/文案 (diagram/code)
    switch; several fences in one message toggle independently.
  • Per-fence memory — the toggle state persists in localStorage keyed by
    the fence source, so it survives page reloads and reconnects.
  • Dark-mode follow — diagrams re-render with the GUI theme.
  • Safe and offline — mermaid runs at securityLevel 'strict' (built-in
    sanitization, no click handlers), the engine is bundled into the plugin
    (zero CDN), and a failed fence keeps its original code with an inline
    error banner. Uninstalling restores the conversation verbatim.

Screenshots

1

2

3

Install

dsh-mermaid-smooth is a plugin for the DeepSeek Harness (dsh) web UI. Before
proceeding, make sure the dsh CLI and web environment are installed and set
up.

Four ways — pick one, then restart DSH Web (the current session ends, but DSH
sessions are persisted on disk and can be resumed after restart).

1. npm package (recommended, simplest)

dsh plugin --profile web add dsh-mermaid-smooth

Verified working: the tarball ships the prebuilt lib/client.js, so nothing
is compiled at install time. pnpm may auto-add the package to
minimumReleaseAgeExclude in the profile's pnpm-workspace.yaml (because the
package was just published) — that is expected and harmless.

2. From GitHub (pinned to a commit)

dsh plugin --profile web add 'github:gitByteFree/dsh-mermaid-smooth#<full-commit-sha>'

Pin to the commit you want (e.g. the main HEAD shown on the repo's commit
history page); later changes on main will not silently alter installed code.
The source is installed and built at install time (prepare runs the esbuild
bundle), so git and Node.js ≥ 20 are required.

3. From a release tarball (offline / where git is inconvenient)

Download dsh-mermaid-smooth-<version>.tgz from this repo's
Releases (it
contains the prebuilt lib/client.js, so no prepare script runs at install
time), then:

dsh plugin --profile web add ./dsh-mermaid-smooth-<version>.tgz

4. Local clone (for development)

git clone git@github.com:gitByteFree/dsh-mermaid-smooth.git
cd dsh-mermaid-smooth
dsh plugin --profile web add .

Restart the web app (dsh web, or your dsh-web service) so the new bundle
layer is composed.

License

MIT