dsh-conversation-nav:对话右侧问题导航插件

在 DSH Web UI 中进行长对话时,快速定位特定的用户提问往往需要多次滚动。dsh-conversation-nav 插件在对话右侧生成一条「问题导航」竖条,解决这一导航痛点。

这是 Fiker1203 维护的 DSH Web UI 插件。它在对话右侧生成一条序号清晰的竖条,列出当前会话中的每条用户提问。悬停可预览内容,点击可平滑跳转。

核心功能

  1. 消息识别:自动识别当前会话中的每条用户消息([data-chat-flow-kind="user"])。
  2. 右侧导航:在对话右侧生成竖向问题导航,序号清晰,窄条不遮挡聊天区。
  3. 预览与跳转:悬停或键盘聚焦时展开预览卡片,显示「第 N 问」和提问文本;点击序号平滑滚动到目标消息并闪烁高亮。
  4. 滚动监听:页面滚动时自动高亮当前正在浏览的问题。
  5. 动态渲染兼容:响应 React 动态渲染,支持加载更早消息、切换会话、虚拟滚动时的自动更新。
  6. 贴底滚动兼容:适配 DSH 聊天区的「贴底滚动」逻辑。
  7. 主题适配:适配女仆主题(maid-atelier)。
    • 浅色模式:使用象牙白 / 海军蓝 / 金色描边。
    • 深色模式(data-ds-dark-theme):使用深海夜蓝 / 香槟金。
    • 未启用女仆主题时自动回退到 DSH 官方设计变量。

安装与启用

dsh plugin --profile web add github:Fiker1203/dsh-conversation-nav

安装后重启 Web UI,并硬刷新浏览器(Ctrl+Shift+R)。

典型用法

  • 悬停序号 → 展开预览卡片,查看该问题内容。
  • 点击序号 → 平滑滚动到该问题并高亮。
  • 向上/向下滚动对话 → 导航条自动高亮当前所在问题。

结构与维护

插件主要包含以下文件:
- index.js:host,无主机行为(浏览器专用)。
- client.js:browser,注入右侧问题导航 UI 及跳转/预览逻辑。
- cordis.patch.yml:插入 conversation-nav 条目。
- package.json:声明 dsh.bundle 和 dsh.client。

维护注意:用户消息选择器定义在 client.js 开头的 USER_NODE_SELECTOR。若 DSH 改版导致用户消息 DOM 标记变化,更新该选择器即可。

注意事项

  • 插件只读取页面 DOM,不发送任何数据。
  • 安装前建议检查源码与许可证(MIT)。
羽毛球分组比赛记分
小程序二维码

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

小夜