前言¶
DeepSeek Harness (DSH) 的 Web UI 架構支持插件化擴展。在對話交互中,提取助手回覆中的特定內容作爲後續提問的上下文是常見需求。手動複製粘貼不僅繁瑣,還容易破壞 Markdown 格式。lianginx/dsh-quote-selection 插件解決了這一問題:它通過一個浮動的引用按鈕,允許用戶在對話中選中任意文本,並直接將其轉化爲 Markdown 引用塊插入到編輯器中。
這是什麼¶
這是一個 DeepSeek Harness Web UI 插件,由用戶 lianginx 維護。它不依賴構建工具,通過原生 JavaScript 實現。插件的核心機制是攔截用戶在對話回覆中的文本選擇,並通過 DSH 的 inputActions.setDraft 接口,將選中的內容以標準的 Markdown 引用格式寫入到編輯器中。
核心功能¶
該插件提供以下功能:
* 浮動引用按鈕:選中對話文本後,按鈕自動出現在選中區域上方;點擊外部或滾動時按鈕自動隱藏。
* 乾淨的 Markdown 輸出:自動將選中的每一行文本轉換爲 Markdown 引用塊(> 前綴),多行選擇會保留正確的換行和格式。
* 鏈式引用:再次引用其他文本時,新的引用塊會與上一塊之間插入一個空行,方便連續引用多個段落。
* 通過官方接口寫入:使用 inputActions.setDraft 作爲寫入路徑,確保編輯器的撤銷歷史、引用芯片等功能正常工作。
* 自動適配語言:按鈕文本通過 DSH 的國際化服務渲染,中文界面顯示「引用」,英文界面顯示 “Quote”。
* 零依賴與零構建:純 JavaScript 實現,無需 Node.js 構建步驟,安裝後即可運行。
安裝與啓用¶
安裝前請確保 DSH 環境滿足以下要求:
* Node.js 版本爲 ^22.19 或 >=24。
* 配置文件中包含官方 @deepseek-ai/dsh-web-app 層(默認的 web 模板通常已包含)。
使用官方命令安裝:
dsh plugin --profile web add github:lianginx/dsh-quote-selection
從 GitHub 倉庫安裝不會執行任何代碼,也不需要 pnpm allowBuilds 權限。
典型用法¶
- 在任意助手的回覆中選中一段文本。
- 點擊浮動的 ❝ 引用 按鈕。
- 編輯器中將出現一個 Markdown 引用塊,光標已自動定位在引用塊下方,可直接開始輸入後續問題。
若再次選中其他文本並點擊引用,新的引用塊會與上一個引用塊之間保留一個空行,形成鏈式引用。
適用場景與注意¶
- 適用場景:需要基於對話歷史中的特定段落進行追問、總結或修改的對話場景。
- 注意事項:插件通過
shell.overlay插槽渲染浮動按鈕,需要確保 DSH Web UI 的基礎模塊已加載。安裝前建議檢查源碼,確認符合本地開發習慣。
結尾¶
該插件通過極簡的設計,將引用操作集成到 DSH 的核心交互流中,減少了手動操作的誤差。更多細節和源碼可參考:https://github.com/lianginx/dsh-quote-selection