前言¶
在 DSH 里处理长文档时,很多人会把 EPUB 丢进浏览器或电子书阅读器单独看,笔记、摘录和 AI 分析则散落在别的工具里。结果是一本书的正文、你划的句子、以及书里提到的其他书名三者互不联通。
下面介绍的这个插件针对的就是这个割裂:BookWeave · 书脉(adrianwang99/dsh-bookweave)是一个 DeepSeek Harness 的 Web 客户端插件,把侧边栏变成一个 EPUB 阅读工作区——书架、摘录、全书名单,以及一个由 AI 生成、能点回原文段落的章节导览。
这与”把 PDF 上传后让模型总结”的做法差别在于:它以本地优先的方式把书、摘录和进度都留在浏览器里,AI 只在显式点击”分析章节”或”翻译”时才调用你配置的模型。
这是什么¶
BookWeave 是一个 DSH Web 客户端插件,维护者是 adrianwang99。它把 DSH 的侧边栏改造成 EPUB 阅读工作区:左侧分类书架,中间衬线字体的阅读区,右侧则是章节导览(Guide)与摘录/笔记(Excerpts & notes)两条轨道。
解决的问题是阅读过程中的三件孤立事:读 EPUB、记录划选和想法、追踪这本书引用或提到的其他书。插件把三者放进同一个插件窗口,并让 AI 的章节总结能指回原文段落。
项目 License 为 MIT,版本 0.19.1,engines.node 要求 >=20,声明的平台为 web。
核心功能¶
以下是 README 中列出的能力,均可核对。
书架与导入。 左侧分类侧栏可创建/重命名/删除;每本书封面有分类选择。支持一键”Import folder”递归导入所选目录下的所有 EPUB(跳过重复项),既支持普通 .epub 文件,也支持已解压的 .epub 文件夹(含 META-INF/container.xml)。也可点击或拖拽导入 .epub。
阅读器。 衬线正文、可调整字号;目录由 EPUB 的 NCX/nav 边界构建(Calibre 拆分的文件会合并回所属章节,part 会单独标记);支持章节导航与进度记忆。没有固定页眉,阅读区和右侧轨道都从窗口顶部开始。
全书名单(Book list)。 提取当前书提到的每一本书:包括《》书名、英文带引号的标题提示,以及一个人工维护的词表,并有噪声过滤(自我引用、目录、章节标题、期刊)。每个条目可跳回出现它的段落。
摘录与笔记。 选中文本后出现红色下划线 + 摘录卡片,可附注释。摘录和笔记渲染为同一种操作卡片,带状态标记、章节/时间、正文,以及常驻的 Locate / Note(仅摘录)/ Edit(仅笔记)/ Delete 按钮。新增想法时,其来源段落也会被列进来;Locate 是真实按钮。
页边批注。 阅读列更窄,把省出的右栏留给手写字体的想法,锚定在它所属的段落或选区。每条笔记可选六种墨色之一;在显示批注时,被引用的文本会以同色虚线下划线标出。可从选中工具栏或页边”+”新建。浮动工具栏用动画收起/展开笔记,收起时每个被批注的段落有彩色竖条标记,点击可再次展开。
章节导览(Book guide)。 右侧轨道的一个标签页,位于摘录左侧,默认打开当前章节并跟随目录/前后翻页/Locate 跳转。含章节选择器、AI 章节摘要,以及按文本出现位置排序的卡片。论断渲染为论证链:顶部是结论,一个标着”because”的上箭头,下面是理由/例子/数据,各自标出关系。每个节点显示一段”original”摘录,悬停/点击会高亮并闪烁对应源段落。
AI 分析。 每章一个显式按钮。小说生成剧情摘要(用书自身语气)+ 情节节拍;非小说生成论断 + 证据。输入压缩到 ≤6–8k 字符,输出 ≤700 tokens,使用最低推理档位,按书/章缓存;除非手动点”Analyze again”,不会重复计费。
翻译。 打开”Translate”面板,从下拉框选目标语言,再点”Start”(不会自动翻译)。译文写回书里,并显示在每个源段落下方作为正文,重新打开后仍在。点”Stop”停止后续工作并保留已完成的段落。翻译期间正文后有进度遮罩。任务在书架层级运行,离开该书也会在后台继续,书架顶部显示进度。分批、去重、跳过已翻译或已是目标语言的段落让它比较省;模型输出格式出错会重试并拆分。
书内搜索。 从全书名单的条目可打开插件内置浏览器面板,预填一个可配置的搜索 URL(默认 Open Library)。在 Book list → Search source 编辑模板,用 {query} 代表书名,任意搜索 provider 都可以。
导出与国际化。 可把全书名单导出为 Markdown。界面支持中文和英文。
安装与启用¶
先用 GitHub 方式安装,这也是 README 标注”now”可用的路径。下面命令来自 README 原文:
dsh plugin add github:adrianwang99/dsh-bookweave
从源码安装(开发用):
git clone https://github.com/adrianwang99/dsh-bookweave.git
cd dsh-bookweave
dsh plugin add .
如果手动管理 profile,可把检出目录软链进 profile 并添加 link: 依赖:
ln -s "$(pwd)" ~/.dsh/profiles/desktop/node_modules/dsh-bookweave
# 然后向 profile 的 package.json 加入 "dsh-bookweave": "link:<absolute path>"
作者还列出了 npm 方式:
dsh plugin add dsh-bookweave
但 README 注明这是”第一次 npm 发布之后”才可用。目前 README 给出的仍是 GitHub 为主路径。
安装或更新 Host 端(index.js)后需要重启 DSH(macOS 上为 ⌘Q);只改客户端时页面刷新即可生效。插件声明的 manifest 如下,普通安装无需手工填写:
{
"dsh": {
"bundle": { "patch": "./cordis.patch.yml" },
"client": { "platform": "web", "immediately": true }
}
}
典型用法¶
README 的 Usage 一节给出的步骤如下,可直接照做:
- 从 DSH 侧边栏打开”书脉”。
- 导入 EPUB(点书架,或把文件拖到窗口)。
- 阅读时使用浮动胶囊按钮(← 书架、目录、右轨开关、A−/A+、导出),它们随滚动保持可用但不占布局空间。
- 打开右侧轨道 → Guide(默认)。选一个章节,可选地点”Analyze chapter”。
- 悬停导览卡片会高亮正文里的源段落,点击会滚动并闪烁该段。
- 选中文本新建摘录(Excerpts & notes 标签页)或想法(手写页边批注);想法也会出现在该标签页并带来源段落,按书/章/段落持久保存。
- 翻译:浮动 Translate → 选目标语言 → Start translation;有进度显示,完成的段落写入书里。Stop translation 停住后续工作,已译文本留在源段落下方,重开仍在。
- 全书名单 → 展开某个条目,可定位该次提及,或在内置浏览器里搜这本书。搜索 URL 可在 Book list → Search source 配置(默认 Open Library)。
关于目录有一个版本注意点:章节现在由 EPUB 的 NCX/nav TOC 边界构建,而不是按每个 spine 文件切分。在 v0.17 之前导入的书保留当时的解析结构;删除并重新导入一次即可获得修正后的目录。
适用场景与注意¶
适合三类人。一是想在 DSH 里沉浸式读 EPUB、不想离开工作区的人;二是做文献/引用梳理、需要把一本书提到的其他书集中列出来的人;三是想在章节层面用 AI 做带原文出处的纲要或翻译的人。
前提条件是:需要带 Web UI 的 DeepSeek Harness 构建。AI 部分额外需要 Host 的 llm 服务(DSH 已能调用的任意 provider);没有它时,阅读、摘录、全书名单和启发式导览仍然可用。
需要注意的几点:
- 插件以当前 DSH 进程的权限运行,安装前应先查看源码与许可证(MIT)。
- 数据以本地优先方式存在浏览器 IndexedDB 里(EPUB、摘录、阅读进度、AI 结果);唯一的网络调用是可选的”Analyze chapter”请求,发给你配置的模型 provider。
- book list 依赖书名提取和词表,属启发式结果,正式引用仍需自己核对。
- 翻译是显式触发、逐段落写回的,注意停止后未完成部分不会写入。
小结¶
BookWeave · 书脉把”读 EPUB、记摘录、理引用、让 AI 带读”收进同一个 DSH 客户端窗口,AI 部分显式触发且带原文出处。目录页:https://www.skillhub.cn/plugins/adrianwang99/dsh-bookweave ,源码:https://github.com/adrianwang99/dsh-bookweave 。