前言¶
DSH 的理念是「一切皆插件」,Web UI 一側通過 ctx.slots 提供 sidebar.panellist、main 這類槽位,第三方插件可以把整頁面板掛進去。如果你的訴求是在瀏覽器裏讀英文文章時順手查詞、記生詞,逐個查詞再手動抄進 Anki 之類工具成本不低。下面介紹的插件就是把這一套動作塞進 DSH 側邊欄的一個入口裏。
這個插件叫 dsh-wordlink,由 lukebest 維護,分類爲客戶端插件,目前在社區目錄上星級 0,版本 1.1.0,許可證 MIT。它做的事一句話概括:在側邊欄加一個 WordLink 入口,打開後是獨立的閱讀 / 查詞 / 複習面板,全部數據只保存在瀏覽器本地。安裝前應該先讀一遍源碼,確認槽位注入方式與當前 DSH 版本兼容。
核心功能¶
下面按 README 裏列出的能力逐條說明。每條都是已覈實的既有功能,不涉及任何未公開能力。
分級詞義標註。內置三篇分級英文文章(A2/B1/B2),詞典約 110 條高頻詞條,按 CEFR 等級(A1–C1)給單詞標註中文釋義。詞典本身是精選小詞表,README 明確說明主要用於演示標註鏈路,實際閱讀時可用後面的「點按未收錄詞補充釋義」繼續擴充。
難度閾值。不做滿屏註釋:只標註高於所選難度的詞,可選全部 / A2+ / B1+ / B2+ / C1。閾值越低註釋越密。
點詞查詞。點擊任意英文單詞彈出卡片,顯示音標、詞性、等級、中文釋義、例句,並可播放發音。
未收錄詞自建釋義。點按詞典裏沒有的詞,可以直接輸入自己的中文釋義保存,保存後立即進入詞典與生詞本。這是擴充詞表的正式入口,不是 hack。
粘貼任意文本。把網頁或文章裏的英文粘進「我的文本」,實時分詞並套用同一套標註與查詞邏輯。也就是說不依賴內置文章,自己的材料也能用同一套鏈路。
批量導入生詞。在生詞本里粘貼文本,或選擇 .txt / .csv 文件,按「單詞 + 中文釋義」批量導入。分隔符支持 Tab、逗號、分號、=、空格。只有單詞沒有釋義的行也能先導入,之後再補釋義。
生詞本與排序。收藏和移除單詞,按到期時間排序,到期詞高亮。
間隔重複複習。SM-2 變體,三檔評分:Again / Hard / Good,對應鍵盤 1 2 3,空格揭示釋義。插件按記憶難度自動安排下次複習。
學習統計。面板給出收藏數、今日到期、已掌握、連續學習天數、正確率、近 7 天學習柱狀圖、生詞難度分佈。
界面與主題。中英雙語隨 DSH Client locale 自動切換(en / zh / zh-CN / zh-Hans);明暗主題只使用宿主提供的 --dsw-alias-* 主題 token,不自帶一套配色。
本地持久化。學習數據寫入 localStorage 的 wordlink.state.v1 鍵下,不上傳、無網絡請求。清除站點數據會清空生詞本與統計。
安裝與啓用¶
先說明一點:README 裏已發佈到 npm 的安裝命令與源碼安裝命令寫的是兩種寫法,因爲該插件同時聲明瞭 npm 名與 git 地址。兩種方式都來自資料原文,首選源碼安裝。
從源碼安裝(不需要 npm 包):
dsh plugin --profile web add github:lukebest/dsh-wordlink
從 npm 安裝(README 標註「已發佈到 npm 後」):
dsh plugin --profile web add dsh-wordlink
裝完重啓或刷新 DSH Web 頁面即可,側邊欄會出現 WordLink 圖標。如果沒看到圖標,可以留意兩個備用入口:側邊欄底部與「會話標題欄」。賬號權限、模板類型、基礎參數這些插件沒有涉及,因爲它是純客戶端插件,不申請文件、網絡、命令權限。
目錄結構對應幾個關鍵文件,改動前先看一眼:
package.json # bundle 清單:dsh.bundle.patch + dsh.client
cordis.patch.yml # 向 Host 組合插入 dsh-wordlink
index.js # Host 半(純 Client 插件,空實現)
client.js # Web Client 半:槽位註冊、UI、詞典、SRS
locale/en.json # 插件元信息(英文)
locale/zh.json # 插件元信息(中文)
icon.svg # 側邊欄圖標
典型用法¶
這一節不用引號,直接說可復現的操作。以下步驟都來自 README 描述的功能路徑。
1、裝好插件,刷新頁面,點側邊欄的 WordLink 入口打開整頁面板。
2、在難度閾值裏從「全部」切到「B1+」,內置三篇文章裏高於 B1 的詞纔會帶中文釋義,避免滿屏註釋。
3、讀文章時點任意英文單詞,彈卡顯示音標、詞性、等級、中文釋義、例句,卡片裏有發音按鈕。
4、點到一個詞典裏沒有的詞,在彈出的輸入框裏寫自己的中文釋義並保存,這個釋義立刻進入詞典與生詞本。
5、想讀自己的材料,把英文文本粘進「我的文本」,標註與點詞查詞邏輯自動套用,和內置文章一致。
6、整理生詞:用批量導入,在生詞本粘貼「單詞 + 中文釋義」,分隔用 Tab、逗號、分號、= 或空格都可以;只有單詞的行先導入,之後再補釋義。導入完成後生詞按到期時間排序,到期詞高亮。
7、複習時按 1(Again)、2(Hard)、3(Good)爲每個詞打分,空格揭示釋義。面板右側的學習統計會同步更新收藏數、今日到期、已掌握、連續學習天數、正確率和近 7 天柱狀圖。
練習完退出聊天即可,插件不含任何聊天側行爲。
實現要點¶
這個插件同時按兩個角色註冊,理解這一點對後面排錯有幫助。
它是純 Client 插件。client.js 通過 window.__ModuleLoader__.load({ id: 'dsh-wordlink', factory(require) {...} }) 註冊,React 只從宿主模塊表 require('react') 獲取,不 import 任何 Harness Client 內部包。index.js 是 Host 半的空實現,的唯一作用是讓 cordis.patch.yml 的 bundle patch 找到這個包。因此 package.json 裏 dsh.bundle.patch 指向 ./cordis.patch.yml,dsh.client 聲明 platform: 'web'、inject: ['@deepseek-ai/dsh-client-ui-conversation', '@deepseek-ai/dsh-client-locale']。
槽位註冊有四處,全部在 apply(ctx) 裏完成。ctx.get('locale') + ctx.effect 先爲插件註冊 wordlink 命名空間的中英文字典,再通過 locale.bind('wordlink') 拿翻譯函數;ctx.slots.inject('sidebar.panellist', ...) 註冊側邊欄入口(id: 'wordlink',order: 30);ctx.slots.inject('main', ...) 註冊整頁面板(key: 'wordlink'),側邊欄按同名 id 分發打開。另外 sidebar.footer.action 與 conversation.session.header.utilities 提供兩個備用入口,點擊後調用 layout.selectPanel('wordlink')。
樣式方面不操作宿主 DOM、不使用 iframe,組件內聯 <style>,只使用 --dsw-alias-* 主題 token。繼承宿主側邊欄與主區的背景、邊框層級,改動主題 token,插件配色跟着走,不建議在插件裏硬寫 background: 色值。
適用場景與注意¶
適合這幾類人:想在 DSH Web UI 裏讀英文文章時順手做詞彙學習;不想把生詞導出到第三方工具、希望邊界就在瀏覽器內;需要用 SM-2 間隔重複而非自定義調度。插件定位是「學習面板」,不解決流暢度問題,也不內置真人發音之外的 AI 精讀講解。
幾點需要留意:
- 這是客戶端插件,運行在當前 DSH 進程的用戶權限下。它不申請文件、網絡、命令權限,學習數據寫入瀏覽器
localStorage,清除站點數據會同時清空生詞本和統計,需要備份的在導出前完成。 - 內置詞典只有約 110 詞,README 標註「主要用於演示標註鏈路」,冷啓動時新詞的釋義要靠「點按未收錄詞補充釋義」逐個補,或靠批量導入補齊。
- 目前尚未提供瀏覽器視覺迴歸截圖,README 說明遇到排版問題請提交 Issue。
- 組合上只聲明依賴
@deepseek-ai/dsh-client-ui-conversation和@deepseek-ai/dsh-client-locale,版本約束寬鬆,安裝前按當前工程版本覈對一下,再確認插件源碼與許可證是否可接受(MIT)。 - 開發驗證環境是 DSH
0.2.1-rc.5與 Node26.x。 - 架構上它是
platform: 'web'、immediately: true的插件,只對 Web UI 生效,不進入服務端與 CLI 啓動流程,其他環境裝了也不會有入口。 - 插件不發起外部網絡請求、無額外 npm 依賴,意味着裝好以後即使斷網也能完整用。
結尾¶
一句話回顧:dsh-wordlink 在 DSH Web UI 裏提供分級標註、點詞查詞、生詞本和 SM-2 複習的完整鏈路,數據留在瀏覽器本地,適合把日常英文閱讀的詞彙積累一次性收進面板裏。插件信息與源碼爲 https://github.com/lukebest/dsh-wordlink ,目錄頁爲 https://www.skillhub.cn/plugins/lukebest/dsh-wordlink ,許可證 MIT,版本 1.1.0。