READMESource: main@62bf99eb
dsh-quick-toc
English | 中文
DeepSeek Harness(DSH)对话大纲插件:把 AI 回复中的 Markdown 标题(H1–H6)提取成可导航的大纲面板,按对话回合分组,自动跟随阅读位置,支持关键字搜索与对话内高亮定位。
功能
- 按回合分组 —— 每条用户消息 + 其后续 AI 回复为一组;组头显示该组最后一条消息的结束时间,并附带该回合首行预览,点击可跳到回合开头
- 关键字搜索 —— 标题栏放大镜打开搜索框;输入后按 回车 跳到下一处命中(循环),按 Esc 关闭;命中计数以
n/N显示 - 搜索范围切换 —— 搜索框内的 标题 / 全文 按钮切换范围:仅标题,或同时搜索用户消息与 AI 回复正文
- 对话内高亮 —— 命中的关键字在对话中高亮,当前命中单独标亮并滚动到视口上部;同一条消息中的多次命中都会计入
n/N - 自动跟随高亮 —— 滚动对话时,视口内可见的回合在大纲中自动点亮(可同时点亮多组),其余组变暗;大纲自动加载并滚动,使正在阅读的组保持可见
- 跳转 —— 点击标题跳到对话中该标题所在位置;点击组头的时间或预览跳到该回合开头
- 可停靠、可缩放 —— 拖顶部横条移动,按 ◀ / ▶ 切换左右停靠,拖边缘或角部调整宽高,收起后成为边缘把手(点击展开);面板位置与尺寸会被记住
- 分页与加载更早 —— 默认显示最近的若干组;在大纲中向上滚动(或滚动到顶部)会加载更早的组
- Markdown 清理 —— 标题中的行内标记(
**加粗**、*斜体*、`代码`、[链接](url)、~~删除线~~)会被剥离后显示 - 仅对话视图显示 —— 中间列切到轨迹、上下文等其他视图时,面板与边缘把手渐隐
- 对话中没有标题时面板自动隐藏;适配深色与浅色主题(内阴影质感随主题切换)
兼容性
| 插件版本 | 支持的 DSH 版本 |
|---|---|
| 0.3.3(最新) | 0.1.5-rc.1 |
| 0.3.2 | ≥ 0.1.2-rc.1 |
最新版目前只在 DSH 0.1.5-rc.1 上验证过,因此仅声明该版本兼容;更早的 DSH 版本未经验证,不作声明。使用更早版本 DSH 时,可用的最新插件版本是 0.3.2。安装或更新时,DSH 市场会依据 package.json 中的 engines.dsh、dsh.compatibility.dshReleases 与 peerDependencies 做宿主兼容预检。
安装
通过 DSH CLI 安装:
dsh plugin --profile web add dsh-quick-toc
也可以从 GitHub 安装:
dsh plugin --profile web add github:LyaxZ/dsh-quick-toc
或以本地目录安装:
dsh plugin --profile web add <插件目录路径>
安装后重启 DSH 并打开 Web UI。面板默认收起,点击对话区边缘的把手即可展开。
使用
- 跳转:点击大纲标题跳到该标题所在位置;点击组头的时间或首行预览跳到该回合开头
- 搜索:点击标题栏的放大镜展开搜索框,输入关键字后按回车逐处跳转(
n/N显示当前位置与命中总数),按 Esc 或再次点击放大镜关闭;用 标题 / 全文 按钮切换搜索范围 - 移动与停靠:拖顶部横条移动面板,按 ◀ / ▶ 在左右之间切换停靠
- 调整大小:拖右边缘调宽度、拖下边缘调高度、拖右下角同时调整
- 加载更早:在大纲中向上滚动即可加载更早的回合;对话本身有"加载更早消息"按钮时,大纲滚到顶部也会触发它
开发
lib/client.js—— 全部 UI 逻辑(浏览器端)lib/index.js—— 宿主端入口(空实现;本插件只提供浏览器端 UI)cordis.patch.yml—— loader patch(符合官方 bundle 规范)- 面板注册进会话级
conversation.input.overlay槽以取得会话级 hook(useChat、useSession、sessionId等),面板本体通过createPortal渲染到document.body成为固定浮层;对话数据来自props.useChat(ChatSnapshot.order与nodes,节点形状:kind: user/assistant-step、location.turn、data.blocks) - 修改
lib/client.js后需重启 DSH 生效
License
MIT © 2026 LyaxZ
No comments yet. Be the first to write one.