dsh-skin-market:在 DSH 設置裏瀏覽、安裝社區皮膚

前言

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 recognizedpackage manifest missingallowBuilds 相關報錯,可按 README「安裝失敗時,可以讓 DSH 自己排查」一節,把完整報錯交給 DSH Agent 按步驟檢查 pnpm、workspace 與構建審批項。

README 還提供安裝前衝突檢查的 Agent 提示詞:先只讀檢查 web profile 的 package.jsoncordis.patch.yml 與已啓用 bundles,發現其他皮膚插件時暫停並提示停用,無衝突後再執行上述命令。

典型用法

從市場安裝一款皮膚

  1. 打開 DSH Web「設置 → 皮膚市場」,或先訪問 在線皮膚市場 預覽。
  2. 在列表中搜索或排序,點進詳情查看預覽圖、兼容性與倉庫健康提示。
  3. 點擊安裝;市場會調用 plugin add,安裝目標爲目錄中固定的 commit SHA。
  4. 在市場中啓用皮膚;若需換回默認或其他皮膚,在同一界面停用或切換。
  5. 皮膚有更新時,在詳情或列表中執行更新;卸載則從 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 用 PowerShell pnpm add 到 profile 目錄。
  • 皮膚市場屬於社區生態,SkillHub 目錄與 DeepSeek / 幻方無官方從屬關係,不是官方應用商店。

鏈接

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

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

小夜