前言¶
DSH Web 默認界面偏工具向。想換主題或皮膚時,常見做法是手動找 GitHub 倉庫、覈對 dsh.client 聲明和 row ID,再用 dsh plugin add 安裝;多個皮膚插件並存還容易衝突。dsh-skin-market 把瀏覽、安裝、啓用、停用、更新和卸載收進 DSH 設置頁,並配套在線目錄頁,目錄由社區 PR 維護、固定 commit 安裝目標。下面介紹它的定位、能力與安裝用法。
這是什麼¶
dsh-skin-market 是嵌入 DSH 設置頁的皮膚市場,維護者爲 kingOfSoySauce。項目在 GitHub 上約 82 stars、7 forks,SkillHub 分類爲「趣味換裝」。
市場已收錄百餘款 DSH Web 皮膚;目錄經 schema 校驗,並有人工審覈與社區收錄入口。除插件內的「設置 → 皮膚市場」外,還有獨立在線頁 kingofsoysauce.github.io/dsh-skin-market 供瀏覽預覽。npm 包名 dsh-skin-market,當前倉庫版本 0.1.45,許可證 MIT。
核心功能¶
皮膚生命週期¶
在 DSH Web profile 內,市場調用 DSH 的 profile 插件管理器完成:
- 瀏覽目錄中的社區皮膚(預覽圖、說明、兼容性提示)
- 一鍵安裝、啓用、停用、更新與卸載
- 對僅含
dsh.client的純前端皮膚,安裝後冪等寫入已審覈的 rowId 與 package 註冊;卸載時一併移除
同時支持帶 dsh.bundle 的完整插件和只有 dsh.client 的皮膚包。
在線目錄與緩存¶
已安裝的市場插件不必升級即可看到新收錄皮膚:
- 打開市場時,Host 從 GitHub Pages 拉取最新
catalog.json - 頁面打開後每 5 分鐘靜默檢查;窗口重新獲得焦點時立即檢查
- 瀏覽器用 IndexedDB 緩存最近一次有效目錄;無緩存時先展示緩存或內置目錄,再在後臺校驗遠程數據
- 列表首批渲染 20 條,接近底部時每次追加 20 條;搜索與排序覆蓋完整目錄
遠程目錄通過 schema、唯一 ID、package、rowId、倉庫地址和固定 commit 安裝目標校驗後,才進入可安裝流程。校驗失敗時回退到緩存或插件內置目錄。
收錄與審覈¶
社區皮膚的唯一事實來源是倉庫 registry/skins/ 下每個皮膚一條 YAML;data/catalog.json 由 CI 生成,PR 中無需手改。提交皮膚可通過市場內「提交皮膚」或 README 中的 Agent 提示詞,按 registry/skin.schema.json 新建條目並開 PR。
收錄要求包括:公開可安裝的 DSH Web 皮膚倉庫、安裝目標固定到完整 40 位 commit SHA、明確的 package、row ID、許可證與兼容範圍、倉庫內真實界面截圖。市場還會展示 README 截圖、DSH 版本聲明、一鍵安裝元數據等「倉庫健康」檢查結果,用於改進建議,不代表官方安全認證。
插件自身更新¶
npm 上出現更高版本時,「設置 → 皮膚市場」標題右側會出現更新入口;也可執行與安裝相同的 dsh plugin add 命令更新。更新後需重啓 DSH Web。
安裝與啓用¶
安裝前請關閉其他皮膚/主題插件,避免與 @deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app 以外的外觀類 bundle 衝突。
官方命令安裝到 web profile:
dsh plugin --profile web add "dsh-skin-market@latest"
安裝完成後重啓 DSH Web,從「設置 → 皮膚市場」進入。安裝依賴 profile 內的 pnpm;若出現 pnpm is not recognized、package manifest missing 或 allowBuilds 相關報錯,可按 README「安裝失敗時,可以讓 DSH 自己排查」一節,把完整報錯交給 DSH Agent 按步驟檢查 pnpm、workspace 與構建審批項。
README 還提供安裝前衝突檢查的 Agent 提示詞:先只讀檢查 web profile 的 package.json、cordis.patch.yml 與已啓用 bundles,發現其他皮膚插件時暫停並提示停用,無衝突後再執行上述命令。
典型用法¶
從市場安裝一款皮膚¶
- 打開 DSH Web「設置 → 皮膚市場」,或先訪問 在線皮膚市場 預覽。
- 在列表中搜索或排序,點進詳情查看預覽圖、兼容性與倉庫健康提示。
- 點擊安裝;市場會調用
plugin add,安裝目標爲目錄中固定的 commit SHA。 - 在市場中啓用皮膚;若需換回默認或其他皮膚,在同一界面停用或切換。
- 皮膚有更新時,在詳情或列表中執行更新;卸載則從 profile 移除該皮膚依賴與註冊項。
提交自研皮膚到市場¶
準備公開 GitHub 倉庫後,將 README 中的收錄提示詞交給 DSH Agent,把 <你的皮膚倉庫地址> 換成真實地址。Agent 應只讀檢查皮膚包、解析 40 位 commit SHA、按 schema 在 registry/skins/ 新增 YAML、運行 npm run registry:check 與測試,並向 kingOfSoySauce/dsh-skin-market 提 PR。收錄不等於 DSH 官方或安全團隊背書。
本地開發皮膚時固定內置目錄¶
本地往 registry/skins 寫入條目後,默認仍會請求 GitHub Pages 上的遠程目錄。調試時可在啓動 DSH Web 前設置:
DSH_SKIN_MARKET_LOCAL_CATALOG=1 dsh web
市場將使用當前構建包內的 data/catalog.json,不發起遠程請求;安裝與生命週期邏輯仍走完整流程。驗證完成後去掉該變量,確認線上目錄行爲未受影響。
適用場景與注意¶
適合誰
- 想在 DSH Web 裏快速試用社區主題、不想手拼
github:owner/repo#commit安裝串的開發者 - 維護 DSH 皮膚倉庫、希望通過標準 registry PR 進入市場目錄的作者
- 需要在同一 profile 內管理多款皮膚的用戶(注意同時只啓用一款外觀類插件)
兼容性
README 寫明當前面向 DSH Web 0.1.0-rc.6。截至 2026-08-17,維護者用該版本驗證了市場 0.1.15 與示例皮膚聯合冒煙;目錄中各第三方皮膚的兼容與安全需自行判斷。缺少 DSH 版本聲明時頁面會提示風險,但不單獨阻止市場安裝。
安全與權限
插件以當前 DSH 進程權限運行,安裝、更新會修改 web profile 的依賴與 bundle。安裝前應閱讀目標皮膚倉庫源碼與許可證;市場展示 stars、topic 等僅用於發現與排序,不表示已審覈安全。收錄與「倉庫健康」檢查也不替代你自己的安全判斷。
其他注意
- Windows 上含
&的github:…#commit&path:/…安裝串不要直接交給 cmd.exe 下的dsh plugin add;優先用市場一鍵安裝,或按 README 用 PowerShellpnpm add到 profile 目錄。 - 皮膚市場屬於社區生態,SkillHub 目錄與 DeepSeek / 幻方無官方從屬關係,不是官方應用商店。
鏈接¶
- SkillHub 目錄頁:kingOfSoySauce/dsh-skin-market
- GitHub 倉庫:github.com/kingOfSoySauce/dsh-skin-market
- 在線皮膚市場:kingofsoysauce.github.io/dsh-skin-market