dsh-quote-selection:将选中的对话文本引用到编辑器

前言

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 权限。

典型用法

  1. 在任意助手的回复中选中一段文本。
  2. 点击浮动的 ❝ 引用 按钮。
  3. 编辑器中将出现一个 Markdown 引用块,光标已自动定位在引用块下方,可直接开始输入后续问题。

若再次选中其他文本并点击引用,新的引用块会与上一个引用块之间保留一个空行,形成链式引用。

适用场景与注意

  • 适用场景:需要基于对话历史中的特定段落进行追问、总结或修改的对话场景。
  • 注意事项:插件通过 shell.overlay 插槽渲染浮动按钮,需要确保 DSH Web UI 的基础模块已加载。安装前建议检查源码,确认符合本地开发习惯。

结尾

该插件通过极简的设计,将引用操作集成到 DSH 的核心交互流中,减少了手动操作的误差。更多细节和源码可参考:https://github.com/lianginx/dsh-quote-selection

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

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

小夜