dsh-ext-master:爲 DeepSeek Harness 管理文檔預覽擴展名

前言

DeepSeek Harness(DSH)內置的文檔預覽通常只認少數後綴,例如 Markdown 只註冊了 md / markdown。若項目裏大量使用 Cursor 規則文件 .mdc,或其它自定義後綴(如 mdx),在側邊欄點開時可能無法走 Markdown 預覽。改 app.asar 不可行,也不利於隨 DSH 升級維護。下面介紹社區插件 dsh-ext-master:在 profile 級通過 bundle 與 client 插件機制,把可配置的後綴追加到對應預覽定義,默認把 .mdc 當作 Markdown 預覽。

這是什麼

dsh-ext-master 由維護者 maxid 發佈,歸類爲 DSH 客戶端插件。一句話定位:DeepSeek Harness 的文檔預覽擴展名管理——當前以 Markdown 爲主,配置結構按預覽類型分組,後續可擴展 html、code 等類型。

倉庫:https://github.com/maxid/dsh-ext-master
社區目錄頁:https://www.skillhub.cn/plugins/maxid/dsh-ext-master(獨立站點,與 DeepSeek / 幻方無官方從屬關係)

適配 DSH >=0.2.1-rc.3 <0.3.0-0(package.json 的 engines.dsh 聲明;-0 邊界使 0.3 預發佈不算在內)。不修改安裝包內的 app.asar,通過 DSH profile 的 bundle + client plugin 加載。

核心功能

  • 內置預覽只註冊了 md / markdown;本插件在運行時把配置的後綴追加到對應預覽定義。
  • 默認 previews.markdown: [mdc];也支持 mdx 等任意安全後綴(小寫、去前導 .、去重,並校驗字符)。
  • 監聽預覽註冊變化;即使目標預覽定義晚於本插件註冊也能補上。
  • 配置經 Host 注入頁面的 __DSH_DOCUMENT_PREVIEW_EXTENSIONS__ 傳遞到前端。

實現上分爲 Host 與 Client 兩部分(見倉庫結構):

lib/index.js        Host 插件:校驗配置並通過 webserver/index-inject 注入頁面
lib/client.js       Client 插件:按預覽類型把後綴追加到對應預覽定義
cordis.patch.yml    Bundle patch:插入 dsh-ext-master 行,默認 markdown: [mdc]

Client 側使用 DSH 預構建的 window.__ModuleLoader__.load({ id, factory }) 協議;倉庫直接提供 lib/client.js,無額外構建步驟。

版本與安裝

本倉庫 tag 與 DeepSeek Harness 官方 release 對應,命名爲 dsh-v<版本>。在 engines.dsh 聲明範圍內,一般不必爲每個 rc 換 tag;DSH 進入 0.3(含 alpha/rc)時,插件會先發布對應 tag。

DSH 版本 對應插件 tag 說明
0.2.1-rc.5 dsh-v0.2.1-rc.5 README 記載已在獨立 profile 中驗證 Host 注入與 Client bundle
0.2.1-rc.3 dsh-v0.2.1-rc.3 桌面版日常使用驗證

推薦用 DSH 插件命令安裝(把 desktop 換成你的 profile 名):

dsh plugin --profile desktop add "github:maxid/dsh-ext-master#dsh-v0.2.1-rc.5"

若需手動接入:將倉庫放到 ~/.dsh/profiles/desktop/plugins,在 profile 的 package.json 裏 link 依賴並把 dsh-ext-master 追加到 dsh.profile.bundles 末尾,再建立 node_modules 符號鏈接。完整步驟見 GitHub README「安裝」一節。完成後刷新 DSH 頁面;若 profile 未開 HMR,需重啓 DSH。

典型用法:擴展 Markdown 後綴

bundle 自帶默認配置:

previews:
  markdown:
    - mdc

要增加例如 mdx,在 ~/.dsh/profiles/desktop/cordis.patch.yml 追加(或合併):

- id: dsh-ext-master
  name: dsh-ext-master
  config:
    previews:
      markdown:
        - mdc
        - mdx

previews 的 key 對應預覽定義 id 的最後一段(如 markdown、html)。後續若插件支持更多預覽類型,可沿用同一結構:

previews:
  markdown: [mdc, mdx]
  html: [xhtml]

改配置後刷新頁面(擴展名在頁面加載時注入);僅改本插件 lib/client.js 時,代碼本身可被 DSH HMR 熱重載。

適用場景與注意

適合誰:在 DSH 裏經常打開 .mdc、.mdx 等 Markdown 變體,希望側邊欄文檔預覽與內置 md 行爲一致的用戶;需要 profile 級擴展、且願意自行維護插件與 DSH 版本對應關係的使用者。

權限與安全:插件以當前 DSH 進程權限運行。安裝前應閱讀倉庫源碼與 MIT 許可證,確認來源與行爲符合你的環境策略。

已知限制(來自 README):

  • 文件樹中 .mdc 圖標可能仍爲通用圖標:前端 file-kind 映射在只讀 bundle 內,插件無法覆蓋;預覽行爲不受影響。
  • 這是 profile 級擴展,不進入 DSH 安裝包;DSH 升級後 profile 與插件仍可繼續使用(注意 engines.dsh 與 tag 對應關係)。
  • 更徹底的做法需上游把 mdc 寫入 @deepseek-ai/dsh-client-ui-sidebar-documentpreview 的 extensions,並同步 file-kind 映射。

結尾

dsh-ext-master 用可配置的預覽後綴補上了 DSH 默認 Markdown 註冊表的缺口,默認即可預覽 .mdc,並預留按預覽類型擴展的結構。按需選擇 tag 安裝、在 cordis.patch.yml 裏調整後綴即可落地。

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

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

小夜