前言¶
在 DSH Web UI 里阅读带公式的对话或文档时,选中 KaTeX 渲染后的数学式再复制,剪贴板里往往是视觉 glyph 文本(例如上标 x^2 会变成 x2),而不是可再编辑、可粘贴进论文或 Markdown 的 TeX。对需要在智能体输出里摘公式、写笔记或对接 LaTeX 工作流的开发者来说,这是日常小摩擦。下面介绍客户端插件 dsh-math-copy(维护者 YizhouLouisLu),它拦截复制行为,把选区内的公式换成带分隔符的 LaTeX 再写入剪贴板。
这是什么¶
dsh-math-copy 是 DeepSeek Harness 的客户端插件:在浏览器端监听 copy 事件,当用户选中的内容 intersect 至少一处 KaTeX 公式时,用公式 accessibility 子树里保留的 application/x-tex 注解替换可见 glyph,并按配置包裹行内或块级数学分隔符,写入 text/plain(可选同时改写 text/html)。选区不含公式时不做任何处理,与系统默认复制一致。
插件归属社区生态;目录页见 skillhub.cn,源码与说明见 GitHub。DSH 本身遵循「一切皆插件」的扩展方式,社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
与默认复制的差异¶
Web UI 用 KaTeX 渲染数学式。DOM 结构大致为:外层 katex,内层 katex-mathml 含 <annotation encoding="application/x-tex">…</annotation>,另有 katex-html 承载可见 glyph。浏览器按可见布局走选复制,得到的是 glyph 文本;本插件克隆选区、标记相交的公式节点,逐块换成 TeX 并取消默认复制。
选区行为¶
- 选区覆盖完整公式或多个公式:剪贴板为对应 LaTeX(加配置的分隔符)。
- 只选中公式的一部分:仍输出整段该公式的 TeX,避免半截 glyph。
- 选区无数学内容:插件不介入。
可配置项¶
在 插件 (Plugins) → dsh-math-copy → math-copy 行 → configuration 中修改,经 settings 写入当前 profile 的 Cordis patch,重启 DSH 后仍保留。
| 字段 | 默认值 | 含义 |
|---|---|---|
| Inline formula delimiter | "$" |
行内公式外包裹符;留空则只输出裸 TeX |
| Display formula delimiter | "$$" |
块级公式外包裹符;留空则只输出裸 TeX |
| Also replace the rich-text flavor | true |
为 true 时在 text/html 里也替换公式;为 false 时 HTML 风味保持原选区 markup,便于富文本粘贴目标 |
Host 侧字段在 index.js 的 export const Config 中声明并标记 .volatile();客户端通过 ctx.configForms.get("math-copy") 订阅并与内置默认值合并。
安装与启用¶
安装命令以仓库 README 为准(需具备 Full access 的会话):
# from a session with Full access:
# plugin_manager action=install_bundle target=<this directory>
将 <this directory> 换成本插件 bundle 所在目录(例如通过市场或本地包安装后指向该目录的路径,具体以你环境中的 plugin_manager 用法为准)。
安装后:
- 重新加载 Web UI 页面,让新的 client bundle 进入启动图。
- 若之后修改了 host 半部分(
index.js),需重启 DSH:host 模块生成在进程生命周期内缓存,且 profile 的 HMR 对 host 为root: [](不监听源码)。仅改client.js时,刷新页面即可。
README 写明开发与验证环境为 dsh core 0.2.0-rc.2(DSH Desktop 2.0.15-beta.1)。package.json 中版本 0.1.0,许可证 MIT;尚未在 engines.dsh 中声明兼容范围。
典型用法¶
无需单独命令行操作:在 Web UI 中像平时一样用鼠标选中含公式的文本(或只选中公式的一部分),执行复制(Ctrl+C / 系统复制)。若选区含 KaTeX 公式,剪贴板 plain 文本应为 LaTeX,例如默认分隔符下块级公式类似:
$$\frac{a}{b}$$
而非 \frac{a}{b} 被渲染后对应的 glyph 串。将结果粘贴到支持 $…$ / $$…$$ 的编辑器、或 TeX 源文件中即可继续编辑。
若你主要粘贴到 Word 等富文本环境,可根据需要关闭 Also replace the rich-text flavor,保留 HTML 选区结构;需要纯 LaTeX 字符串时保持默认开启即可。
适用场景与注意¶
适合谁
- 经常从 DSH 对话里复制公式到 Obsidian、LaTeX、Markdown 或代码注释的开发者。
- 希望复制结果可直接作为
$…$/$$…$$片段的用户。
权限与安全
插件以当前 DSH 进程及 Web 客户端上下文运行。安装前请自行查看 GitHub 源码 与 MIT 许可证,确认 bundle 来源可信;勿在未审阅的情况下从不可信路径执行 install_bundle。
实现细节(可选阅读)
- 配置面板注册在
plugins.row.configslot,键名为dsh-math-copy#math-copy;无内置 UI 自动渲染该表单,由插件自行渲染。 - 目录安装时
@deepseek-ai/schemastery通常可直接解析;目录 bundle 链入 profile 时可能走 fallback,无 schema 时仍可按默认复制,仅配置表单缺失。
结尾¶
dsh-math-copy 解决的是 Web UI 复制 KaTeX 公式得到 glyph 而非 LaTeX 的问题,通过 document 级 copy 监听与 TeX 注解回填,让剪贴板内容与公式语义一致。需要安装 bundle、刷新页面,并在改 host 配置后重启 DSH。