dsh-md-live:DSH 右侧边栏的原生 Markdown 实时预览

前言

在 DSH(DeepSeek Harness)的 Web 界面里,文件列表与终端占用右侧栏,Markdown 预览通常需要另开新标签或嵌入到主列中,切换不便。下面介绍 dsh-md-live,它通过一个真实的右侧栏标签页,列出工作区内的 .md 文件,并在文件变更时自动刷新预览,同时支持将选中内容回传到聊天。

是什么

dsh-md-live 是一个 DSH 插件,为 Web 右侧栏提供原生 Markdown 预览标签。它由 lg114 维护,归类为客户端插件。它不依赖外部面板,而是通过 DSH 的 sidebarRightTabs 与 sidebar.right.pane.tab 注册,与文件列表、终端等标签共享同一机制。

核心功能

  • 真正的右侧栏标签页:通过 ctx.sidebarRightTabs 与 sidebar.right.pane.tab 注册,使用与文件列表、终端相同的机制。
  • 工作区全目录扫描:从会话工作区根目录开始遍历,每层并发 8 个列表,逐层返回结果,首层先显示,其余继续扫描。
  • 可编辑的过滤规则:默认跳过 node_modules、.git、dist 等目录;规则在面板中编辑,按浏览器持久化,可恢复默认或清空规则以扫描所有目录。
  • 实时刷新:监听 remote.workspaceFiles.changes,文件变更时自动刷新,仅在监听不可用时显示手动刷新按钮。
  • 路径显示:标题栏显示相对于工作区的 目录/文件名,悬停显示绝对路径;窄面板时目录优先隐藏,文件名不截断。
  • 目录索引(TOC):提取标题并注入 id,点击目录项可滚动定位。
  • 安全渲染:使用 DOMPurify(HTML 配置)过滤脚本、iframe、事件属性与 javascript: URL。
  • 语法高亮:按需注册 27 种语言的 highlight.js。
  • 主题跟随:读取 DSH 的 --dsw-* 设计令牌,继承亮/暗外观、字号步进与第三方主题。

安装与启用

从仓库克隆并构建:

git clone <your-repo-url>
cd dsh-md-live
npm install
npm run build

安装到 web 配置文件:

dsh plugin --profile web add .

重启 Harness 并刷新页面。package.json 中的 dsh.client 声明会让 Host 自动将 lib/client.cjs 作为 Client 端加载,无需额外补丁。

典型用法

  1. 在右侧栏顶部点击 +,从指南中选择 md-live。
  2. 从文件列表中选择一个 .md 文件,右侧面板显示实时渲染。
  3. 要切换文件,点击标题左侧的 ←。

列表底部的 N directories skipped (M rules) 行打开规则编辑器:每行一个目录名,保存后立即重扫;「restore defaults」恢复内置跳过列表;「show everything」清空规则以列出 node_modules 中的 .md。规则按浏览器存储在 localStorage 的 dsh-md-live.skip-dirs.v1 中。

适用场景与注意

适合需要频繁查看和编辑 Markdown 文档的开发者与智能体工程师。插件以当前 DSH 进程权限运行,安装前建议阅读源码与许可证(MIT)。注意:当前为只读预览,不支持编辑或保存;相对图片路径不自动解析;不支持 Mermaid 或 KaTeX;目录过滤仅按名称匹配,不支持路径通配符。

短结尾

dsh-md-live 在 DSH Web 右侧栏提供一套原生的 Markdown 预览方案,通过工作区扫描、过滤规则与实时刷新,让文档预览与文件切换更顺畅。更多细节与源码见:目录页 与 GitHub。

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

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

Xiaoye