dsh-plugin-categories
> v0.1.0 — DSH 插件分类管理:全部 / 系统 / 市场 / 收藏 四视图 + 启停 / 收藏 / 卸载 / 批量操作。按 loader 树与 profile 依赖实时分类,系统插件按安装目录识别,其余一律归市场。

---
定位
DSH 默认的插件清单把所有已加载插件(含出厂内置的 dsh-base 78+ 行)平铺在一起,难以区分"系统自带"与"自己安装的"。本插件把插件清单整理成清晰的分类视图:
- 全部:完整列表(仅展示,含分类徽标);
- 系统:从 dsh 安装目录解析的内置插件(可单独 / 批量启用、禁用);
- 市场:所有外部来源的插件(npm / github / 本地 file:),可启用、收藏、卸载;
- 收藏:手动 ⭐ 收藏的插件,跨分类聚合。
界面预览

功能
- 双分类 + 收藏:系统 / 市场严格按"模块解析位置"判定(dsh 安装目录 → 系统;其余 → 市场),收藏完全手动(存于 profile 的
.dsh-categories/favorites.json)。 - 管理操作:启用 / 禁用(尽量实时生效;无法实时时提示"重启后生效"并锁定该项,勾选与批量自动排除)、单独卸载(详情弹窗确认)、批量启用 / 批量禁用。
- 状态可视化:运行中 / 已启用 = 绿,已禁用 = 黄,失败 = 红;需重启的切换显示"重启后生效"。\n- 来源悬浮:来源列已隐藏,鼠标悬停模块名可查看来源(npm / github / 本地路径)。
- 只读分类接口:
GET /dsh-categories/list;写操作走POST /dsh-categories/toggle | favorite | uninstall,同源校验。
安装
方式一:dsh 命令(GitHub,推荐)
dsh plugin --profile web add github:superFAN14/dsh-plugin-categories方式二:本地构建
pnpm install
pnpm run build
dsh plugin --profile web add file:./dsh-plugin-categories安装后需重启 DSH 桌面端使 bundle 生效。
使用
设置 → 插件分类。四个标签页:
| 标签页 | 行为 |
|---|---|
| 全部 | 只读总览(含分类列) |
| 系统 | 启用 / 禁用(无卸载) |
| 市场 | 启用 / 禁用 / 收藏 / 卸载 |
| 收藏 | 启用 / 禁用 / 取消收藏 / 卸载 |
批量启用 / 禁用位于顶栏右侧(待重启项不可勾选、自动排除)。首次进入页面时加载数据;切到其他分区再回来直接还原(不刷新),在当前页面再次点击左侧"插件分类"可手动刷新。
开发
pnpm install
pnpm run build # tsdown → lib/index.js(host)+ lib/client.js(设置页 UI)源码结构:src/index.ts(host:loader 树 + profile 读取 + 4 条路由)、src/client/index.tsx(设置页分区 UI,纯 React + 内联样式,无额外 UI 依赖)。
图标(可选)
设置导航中本插件的图标默认是宿主回退的齿轮。运行以下脚本可替换为罗盘图标(自动备份原文件;DSH 发行版更新后需重跑):
node scripts/patch-nav-icon.mjs许可证
MIT