yichangyaoyue / dsh-client-ui-mermaid

목록에 있음

dsh plugin that renders Mermaid fenced code blocks as SVG diagrams in the web UI

main도구 소스 보기

설치

npx -y @deepseek-ai/dsh plugin --profile web add github:yichangyaoyue/dsh-client-ui-mermaid

이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.

README

유지 관리자가 작성한 문서 스냅샷입니다.

GitHub에서 보기 ↗
커밋 ff71f2f동기화 2026. 8. 18.

@moyiyaoyue/dsh-client-ui-mermaid

Client-only dsh plugin that renders Mermaid fenced code blocks (```mermaid) as inline SVG diagrams in the web UI.

What it does

  • Watches the conversation DOM for md-code-block elements whose language is mermaid.
  • Renders each one to SVG via the Mermaid engine, replacing the plain code body while keeping the copy button and a 源码 / 收起 source toggle.
  • Re-renders diagrams when the DSH light/dark theme flips.
  • Falls back to an inline error message (and keeps the source visible) when the diagram cannot be rendered.

How it works

  • The package declares dsh.client.platform = "web", so the client-modules host scan serves lib/client.js as /plugins/@moyiyaoyue/dsh-client-ui-mermaid/client.js and lists it in window.__DSH_BOOT__.
  • The browser bundle registers a MutationObserver on document.body and lazily executes the vendored Mermaid engine on first use.

Mermaid engine source

The Mermaid v11 engine is vendored into lib/client.js, so diagram rendering works fully offline — no network request is made. As a defensive fallback (if the vendored copy ever fails to execute), the plugin tries these CDN URLs in order:

  1. https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js
  2. https://unpkg.com/mermaid@11/dist/mermaid.min.js

Override the fallback before the plugin applies by setting window.__DSH_MERMAID_SRC__ to a URL string or an array of candidate URLs.

Mermaid runs in the browser with securityLevel: "strict", so untrusted diagram text cannot inject HTML into the page.

Rebuild

Rebuild the vendored bundle and reinstall it in one step (from the repo root):

powershell -ExecutionPolicy Bypass -File .\rebuild.ps1

Build sources live under build/ (client.template.js, build.js, and the downloaded mermaid.min.js).

Install

Install from npm:

dsh plugin --profile web add @moyiyaoyue/dsh-client-ui-mermaid

or, for local development, from a checkout on the same drive:

dsh plugin --profile web add "file:../../plugins/dsh-client-ui-mermaid"

Because this is a client-only plugin (it declares no dsh.bundle), it must also be registered as a loader entry in the profile's cordis.patch.yml:

- insert:
    - id: client-ui-mermaid
      name: '@moyiyaoyue/dsh-client-ui-mermaid'

Restart dsh web (or the profile) after installing, then refresh the browser.

저장소 정보

언어
JavaScript
라이선스
MIT
마지막 업데이트
2026. 8. 15. 오전 3:19

신중하게 설치하기

소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.