BookWeave · 書脈:在 DSH 裏讀 EPUB,並把被引用的書連起來

前言

在 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 一節給出的步驟如下,可直接照做:

  1. 從 DSH 側邊欄打開”書脈”。
  2. 導入 EPUB(點書架,或把文件拖到窗口)。
  3. 閱讀時使用浮動膠囊按鈕(← 書架、目錄、右軌開關、A−/A+、導出),它們隨滾動保持可用但不佔佈局空間。
  4. 打開右側軌道 → Guide(默認)。選一個章節,可選地點”Analyze chapter”。
  5. 懸停導覽卡片會高亮正文裏的源段落,點擊會滾動並閃爍該段。
  6. 選中文本新建摘錄(Excerpts & notes 標籤頁)或想法(手寫頁邊批註);想法也會出現在該標籤頁並帶來源段落,按書/章/段落持久保存。
  7. 翻譯:浮動 Translate → 選目標語言 → Start translation;有進度顯示,完成的段落寫入書裏。Stop translation 停住後續工作,已譯文本留在源段落下方,重開仍在。
  8. 全書名單 → 展開某個條目,可定位該次提及,或在內置瀏覽器裏搜這本書。搜索 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 。

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

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

小夜