dsh-selection-ask:在 DSH 网页里划词引用

前言

在 DeepSeek Harness(DSH)网页版里读 AI 的长回答,常见操作是:选中某句 → 复制 → 点输入框 → 粘贴 → 再补问题。粘进去的是一段没有结构的裸文本,模型很难区分「你的追问」和「你指的那句话」。手动拼 Markdown 引用块也费事。

下面介绍社区插件 dsh-selection-ask(维护者 Eos010):在页面里选中文字后,就地写批注,生成带编号的引用胶囊写入输入框,原文同步高亮与编号;删胶囊则高亮与编号一并消失。分类为客户端,当前 GitHub 星标为 0。插件目录页:skillhub.cn/plugins/Eos010/dsh-selection-ask。

这是什么

dsh-selection-ask 是 DSH 网页版的划词引用插件(README 标注版本 V0.1,package.json 为 0.1.0)。它不替代宿主对话能力,只在浏览器端增强「选中 → 引用 → 追问」这条链路。

插件以当前 DSH 进程的权限在客户端运行;README 写明不联网、不读文件、不读凭据。安装前建议自行查看 GitHub 源码 与 MIT 许可证。

核心功能

能力与 README 一致,摘要如下。

  • 划词即引用:可选中 AI 回答、自己发过的话、工具输出、代码块等;光标旁浮出就地输入栏,可写批注或直接回车。
  • 编号与高亮:每条引用有全局递增编号(选中文本 1、2、3…),原文上有高亮与编号牌;悬停输入框里的胶囊可查看原文。
  • 胶囊为唯一事实源:在输入框删除胶囊后,原文高亮与编号同时消失,不会留下孤儿标注。
  • 插入位置:新引用落在输入框当前光标处;连续引用多段依次追加,不覆盖已有内容。
  • 去重与合并:同一段文字再次引用时复用原编号;若先引短句再引包含它的长句,会更新为更长引用,不新增胶囊。
  • 提交方式:Enter 只写入输入框(可继续编辑);Ctrl/Cmd + Enter 写入并直接发送。
  • 主题:配色取自宿主设计变量,浅色/深色自适应。
  • 发给模型的形态:输入框里是编号胶囊,实际发送内容为规整的 Markdown 引用块,例如:
> 一句话对照:上面那串"往下压"是递,撞到出口后"往回收"是归——两个动作合起来才叫递归。

(这里接着写你的问题,光标已经在这了)
  • 长度限制:选中内容超过 8000 字会截断,并提示「内容过长,已截断」。

安装与启用

DSH 命令行不能用 --profile desktop 装插件,会报错:

$ dsh plugin --profile desktop add github:Eos010/dsh-selection-ask
error: profile "desktop" is managed exclusively by the Electron application

桌面版 profile 由 Electron 应用独占管理。按你实际使用的环境二选一。

桌面版(Electron 应用)

在 DSH 应用内安装,或按 README 手动两步(Windows PowerShell 示例):

# 1) 把仓库放进 profile 的 node_modules
git clone https://github.com/Eos010/dsh-selection-ask `
  "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-selection-ask"

# 2) 在 ~/.dsh/profiles/desktop/package.json 的 dsh.profile.bundles 数组里加一行:
#      "dsh-selection-ask"

# 3) 重启 DSH,然后刷新网页(Ctrl+F5)

命令行版 dsh web

先确保 PATH 上有 pnpm(dsh plugin 会转发到 pnpm):

npm i -g pnpm        # dsh plugin 是 pnpm 的转发器,PATH 上得先有 pnpm
dsh plugin --profile web add github:Eos010/dsh-selection-ask

从本地工作副本安装时,将 github:… 换成 file:<你的工作副本路径>。

两种方式装完后都要重启 DSH,并刷新网页(Ctrl+F5)——包清单只在启动时读一次。卸载:从 dsh.profile.bundles 删掉对应行、删除 node_modules 下目录,再重启。

典型用法

经过上面的安装与重启,在网页里按下面步骤操作。

  1. 选中一段文字;
  2. 光标旁出现就地输入栏——写批注或留空;
  3. Enter:写入输入框,不发送;Ctrl/Cmd + Enter:写入并立刻发送。
动作 结果
选中正文 浮出就地输入栏;选中区域底色不会消失
输入栏里按 Enter 写进输入框,不发送
输入栏里按 Ctrl/Cmd + Enter 写进输入框并立刻发送
写了批注再提交 输入框里是 [胶囊] 你的批注
悬停胶囊 浮出这条引用的原文
在输入框里删掉胶囊 原文高亮与编号同时消失
点别处 / 按 Esc 收起浮层,不动输入框
在输入框里选中文字 不出浮层(编辑态,非引用)
连续引用多段 依次排在光标处,追加而非覆盖

编号在一个页面生命周期内全局递增;同一段文字再次引用时复用原编号。

适用场景与注意

适合谁:经常在 DSH 网页里对着长回答「指着某句追问」的用户;希望引用块结构清晰、且页面上的标注与输入框内容保持一致的场景。

环境与限制(来自 README):

  • 原文高亮需要 Chromium 105+(DSH 桌面版与 dsh web 基于 Chromium,文档称实测可用)。
  • 转录很长时,滚出屏幕的那段暂时不高亮,滚回可见区域后恢复。
  • 侧边提问面板仍在完善:按钮已就位,暂时还发不出问题。
  • 更新插件或改配置后请 Ctrl+F5 刷新页面。
  • 若未来使用侧边提问相关能力,会调用你自己配置好的模型,消耗你的额度。

开发侧:package.json 要求 Node ≥ 22,运行时零依赖;构建与测试命令见仓库 README。

结尾

dsh-selection-ask 把「选中 → 批注 → Markdown 引用」收成划词与胶囊一条链,并靠输入框胶囊统一驱动页面高亮与编号。DSH 生态强调「一切皆插件」;社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,安装与审阅请以仓库为准。

  • 目录页:https://www.skillhub.cn/plugins/Eos010/dsh-selection-ask
  • GitHub:https://github.com/Eos010/dsh-selection-ask
羽毛球分组比赛记分
小程序二维码

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

小夜