dsh-quote:把对话选区变成 Composer 里的 Markdown 引用

前言

在 DeepSeek Harness(DSH)里写跟进问题时,常见做法是手动复制助手或用户消息、在输入框里加上 > 逐行引用。草稿已经写了一半时,若整段替换或粘贴不当,容易把已有内容冲掉。社区插件 dsh-quote(维护者 naletko)针对的是:在对话 transcript 里选中一段文字,以 Markdown 块引用形式追加到 Composer,且不动你正在写的草稿。行为上 README 将其与 Codex 的引用方式作类比——选区旁出现 Quote 按钮,或使用快捷键,引用块落在草稿之后,中间空一行。

这是什么

dsh-quote 是 DSH 的客户端类插件:在 Web 客户端(Desktop 应用内的 Web 视图或浏览器会话)中,对对话里可选中的文本(助手消息、用户消息均可)格式化为块引用并插入 Composer。插件无 npm 依赖、无构建步骤,由 host 侧 index.js 与浏览器侧 client.js 组成。当前 package 版本为 1.3.3,许可证 MIT(© 2026 Alex Naletko)。目录页:skillhub.cn/plugins/naletko/dsh-quote;源码:github.com/naletko/dsh-quote。

核心功能

下面介绍 README 中已说明、且与实现描述一致的能力。

引用与草稿保护

  1. 在对话中选中一段或多段文字。
  2. 点击选区旁的 Quote,或按默认快捷键(见下节)。
  3. 插入结果形如:
> first line of the quoted text
> second line of the quoted text

引用与已有草稿之间会空一行;引用是追加到草稿末尾,不会用选区替换整段输入。插入优先走 Composer 自带的 captureInsertion() / insertText(),形成可撤销的单次编辑;若该路径不可用,则读回当前草稿再在末尾追加引用,插件不会覆盖你已输入的内容。

快捷键与按钮

平台 默认快捷键
Windows、Linux Ctrl+Shift+.
macOS Cmd+Shift+.

设置里以可移植和弦 Mod+Shift+. 存储(Mod 在 Windows/Linux 为 Ctrl,在 macOS 为 Cmd)。可在插件设置卡片中重新录制快捷键;字母键按物理键码匹配,非拉丁键盘布局下仍可识别。

选区折叠、点击空白、Esc、滚动、窗口缩放、切换标签或会话变更时,Quote 按钮会消失。在 input、textarea、contenteditable(含 Composer 自身)内的选区会被忽略,避免误触。

文本与界面

选区会 trim,CRLF 归一化,连续空行在引用中折叠为单行 >,长度受「最大引用长度」限制(默认 4000 字符,可调 200–20000)。按钮与设置卡片使用 DSH 设计 token(--dsw-alias-*),支持深浅主题、prefers-reduced-motion、aria-label 与焦点环。界面语言随 document.documentElement.lang(ru* 为俄语,否则英语)。

隐私与本地配置

插件声明无出站网络(host 仅提供本地配置路由);选中文本仅在浏览器内格式化并写入 Composer,不上传、不遥测。配置经 GET/POST /api/dsh-quote/config 读写,持久化为 DSH 主目录下的 dsh-quote-config.json($DSH_HOME 未设置时为 ~/.dsh);浏览器侧在 localStorage 保留副本以便首屏 Composer 读取设置。该 API 仅接受明显来自 loopback 的请求,并拒绝大于 16 KiB 的请求体。

安装与启用

安装方式取决于你如何使用 DSH;命令与步骤均来自项目 README。

Desktop 应用

  1. 打开 Plugins。
  2. 选择 Add plugin,输入 dsh-quote(或本地 checkout 的绝对路径)。
  3. 若 bundle 默认未启用则打开;设置卡片出现在该插件页面。

CLI

dsh plugin --profile web add dsh-quote

本地目录安装示例:

dsh plugin --profile web add /absolute/path/to/dsh-quote

无插件管理器的部署环境,README 给出手动添加规格:github:naletko/dsh-quote(通过 Plugins → Add plugin)。

环境与兼容

  • DeepSeek Harness 核心建议 0.2.1-rc.2(Web 客户端);manifest 亦接受更早的 0.2.x。
  • 使用 conversation.input.right 槽位(列表位),刻意不占 conversation.input.activity,以免挤掉语音插件麦克风。
  • 支持 Windows、macOS、Linux;无 npm 依赖、无 bundler、无构建步骤。

插件以当前 DSH 进程权限运行;安装前请自行查看源码与 MIT 许可证,确认符合你的安全与合规要求。

典型用法

经过上面的安装与启用,日常使用可以按下面三步复现 README 中的流程:

  1. 在对话里选中内容——可以是消息中的一段、整段或多段。
  2. 点 Quote 或按快捷键。
  3. 块引用出现在 Composer 中,原有草稿保持不变,可在引用下方继续输入。

README 给出的典型场景:选中回答里你不同意的一段,引用后继续写反驳或追问。

设置项

在 Plugins 中该插件页面,或通过列表行的 Configure 打开设置卡片;卡片内有与插入结果一致的实时预览。

设置 默认 作用
Enable quoting 开 关闭按钮与快捷键,无需卸载插件
Add an attribution line 关 在引用末追加一行 > — quote(俄语环境为 > — цитата)
Maximum quote length 4000 保留的选区字符数上限
Keyboard shortcut Mod+Shift+. 点击字段后按下所需组合;Restore default 恢复默认

更新与自测

在带插件管理器的 Desktop 中,Settings → Plugins → Quote 的 Updates 可对比 GitHub main 与已装版本并一键更新;更新后需重载页面,若版本未变则可能需要重启应用(host 半仅在启动时加载)。

开发者可在 clone 后的目录运行(README From source / Tests 节,不涉及向 DSH 注册安装):

node --check index.js client.js
node test/metadata-check.mjs
node test/quote-logic-check.mjs

结尾

dsh-quote 解决的是「对话里选中即引用、且不丢 Composer 草稿」这一具体交互问题,适合经常在 DSH 里逐段回应模型输出、需要 Markdown 块引用格式的开发者。DSH 生态强调「一切皆插件」;SkillHub 插件目录 为社区站点,与 DeepSeek / 幻方无官方从属关系。进一步了解实现与隐私说明见 GitHub 仓库:https://github.com/naletko/dsh-quote。

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

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

Xiaoye