前言¶
DeepSeek Harness (DSH) 的 Web UI 架构支持插件化扩展。在对话交互中,提取助手回复中的特定内容作为后续提问的上下文是常见需求。手动复制粘贴不仅繁琐,还容易破坏 Markdown 格式。lianginx/dsh-quote-selection 插件解决了这一问题:它通过一个浮动的引用按钮,允许用户在对话中选中任意文本,并直接将其转化为 Markdown 引用块插入到编辑器中。
这是什么¶
这是一个 DeepSeek Harness Web UI 插件,由用户 lianginx 维护。它不依赖构建工具,通过原生 JavaScript 实现。插件的核心机制是拦截用户在对话回复中的文本选择,并通过 DSH 的 inputActions.setDraft 接口,将选中的内容以标准的 Markdown 引用格式写入到编辑器中。
核心功能¶
该插件提供以下功能:
* 浮动引用按钮:选中对话文本后,按钮自动出现在选中区域上方;点击外部或滚动时按钮自动隐藏。
* 干净的 Markdown 输出:自动将选中的每一行文本转换为 Markdown 引用块(> 前缀),多行选择会保留正确的换行和格式。
* 链式引用:再次引用其他文本时,新的引用块会与上一块之间插入一个空行,方便连续引用多个段落。
* 通过官方接口写入:使用 inputActions.setDraft 作为写入路径,确保编辑器的撤销历史、引用芯片等功能正常工作。
* 自动适配语言:按钮文本通过 DSH 的国际化服务渲染,中文界面显示「引用」,英文界面显示 “Quote”。
* 零依赖与零构建:纯 JavaScript 实现,无需 Node.js 构建步骤,安装后即可运行。
安装与启用¶
安装前请确保 DSH 环境满足以下要求:
* Node.js 版本为 ^22.19 或 >=24。
* 配置文件中包含官方 @deepseek-ai/dsh-web-app 层(默认的 web 模板通常已包含)。
使用官方命令安装:
dsh plugin --profile web add github:lianginx/dsh-quote-selection
从 GitHub 仓库安装不会执行任何代码,也不需要 pnpm allowBuilds 权限。
典型用法¶
- 在任意助手的回复中选中一段文本。
- 点击浮动的 ❝ 引用 按钮。
- 编辑器中将出现一个 Markdown 引用块,光标已自动定位在引用块下方,可直接开始输入后续问题。
若再次选中其他文本并点击引用,新的引用块会与上一个引用块之间保留一个空行,形成链式引用。
适用场景与注意¶
- 适用场景:需要基于对话历史中的特定段落进行追问、总结或修改的对话场景。
- 注意事项:插件通过
shell.overlay插槽渲染浮动按钮,需要确保 DSH Web UI 的基础模块已加载。安装前建议检查源码,确认符合本地开发习惯。
结尾¶
该插件通过极简的设计,将引用操作集成到 DSH 的核心交互流中,减少了手动操作的误差。更多细节和源码可参考:https://github.com/lianginx/dsh-quote-selection