dsh-visualization:DeepSeek Harness 可視化渲染插件

DeepSeek Harness Web 界面默認將代碼塊視爲純文本。dsh-visualization 解決了這個問題,爲 Mermaid 圖表、數據表、Vega-Lite 圖表和靜態 SVG 圖表提供了安全、可選的渲染能力。它是一個 GitHub 分發的 DSH 包,而非 Shell 修改。

安裝與配置

安裝時,插件會自動部署到 web 配置文件。使用固定版本安裝命令:

npx --yes github:shaomingbo/dsh-visualization#v0.3.6

安裝完成後,需要手動重啓 DSH 並在 Web 界面進行硬刷新以加載新組件。

檢查安裝狀態或卸載插件,使用相同的固定版本號:

npx --yes github:shaomingbo/dsh-visualization#v0.3.6 status
npx --yes github:shaomingbo/dsh-visualization#v0.3.6 uninstall

前置要求:
* 當前 dsh CLI 版本需爲 0.1.2-alpha.3、0.1.5-rc.1 或 0.1.5-rc.2。
* 系統環境需包含 pnpm(dsh plugin 命令依賴它)。

核心功能

插件通過適配器模式與不同版本的 Host 兼容。新版本 Host 提供 conversation.chat.assistant.codeBlock 槽位時使用原生渲染接口;舊版本或無槽位環境則使用 DOM 適配器,在原始代碼塊旁掛載安全渲染器,待預覽就緒後隱藏源碼。

1. Mermaid 圖表渲染

支持標準的 Mermaid 流程圖、序列圖、甘特圖等。渲染樣式包含雙色調系統、Neo 佈局、DSH 主題的圓角與軟陰影。此外,支持以下子類型(無需重複聲明類型頭):
* kanban:看板
* quadrantChart:象限圖
* C4Context、C4Container、C4Component、C4Dynamic、C4Deployment、requirementDiagram

2. 數據表渲染

自動解析 csv、tsv 和 json-table 格式。生成的表格支持過濾、排序和分頁功能。

3. Vega-Lite 圖表

在單次 Worker 中渲染靜態 Vega-Lite v6 圖表。

4. 靜態 dsh-svg 圖表

用於模型手繪的精細圖表。渲染器會驗證 SVG 文檔的白名單規則,並通過 Blob <img> 展示。只有明確要求“精排圖”或加載了 dsh-diagram-design 技能時,纔會啓用此通道。

5. 擴展預覽

複雜圖表支持展開預覽,提供以下交互:
* 縮放範圍:10% – 300%
* 操作:鍵盤 +、-、0 縮放,鼠標/觸摸拖拽平移,Escape 或點擊背景關閉
* 視圖:適應窗口

典型用法

Mermaid 看板

```kanban
backlog[Backlog]
  theme[Theme upgrade]
doing[In progress]
  dark[Dark-mode verification]
### Mermaid 象限圖
```markdown
```quadrantChart
x-axis Low effort --> High effort
y-axis Low impact --> High impact
Dark mode: [0.35, 0.82]
### C4 上下文圖
```markdown
```C4Context
Person(user, "User")
System(app, "DSH Web")
Rel(user, app, "Uses")
### 靜態 SVG 示例
```markdown
```dsh-svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 600" role="img" aria-labelledby="demo-title demo-desc">
  <title id="demo-title">Architecture overview</title>
  <desc id="demo-desc">A client calls the orders service through a gateway; the service reads a database.</desc>
  <defs>
    <marker id="arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
      <polygon points="0 0, 8 3, 0 6" fill="#4f5d75"/>
    </marker>
  </defs>
  <rect width="960" height="600" fill="#f5f5f5"/>
  <rect x="80" y="120" width="160" height="48" rx="6" fill="#ffffff" stroke="#2d3142"/>
  <text x="160" y="148" text-anchor="middle" font-size="12" fill="#2d3142"
        font-family="-apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif">Client</text>
  <rect x="480" y="120" width="160" height="48" rx="6" fill="#ffffff" stroke="#2d3142"/>
  <text x="560" y="148" text-anchor="middle" font-size="12" fill="#2d3142"
        font-family="-apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif">Orders</text>
  <path d="M 240 144 H 472" fill="none" stroke="#4f5d75" marker-end="url(#arrow)"/>
</svg>

```

注意事項

  1. 兼容性:xychart-beta 和 sankey-beta 特性被有意禁用。
  2. 安全隔離:html、svg 和 xml 代碼塊不會被接管,始終顯示源碼。
  3. 錯誤處理:對於未知標記、流式內容、解析失敗或渲染失敗的情況,插件會保留原始代碼塊可見,避免顯示破損的預覽。
  4. 路由規則:普通的 text 代碼塊只有當第一行非空內容是支持的 Mermaid 頭部時,纔會被當作 Mermaid 渲染,否則回退到原生代碼塊。

dsh-visualization 是 DeepSeek Harness 生態中提升可視化能力的實用工具。更多細節與源碼,請訪問 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜