dsh-cerrda-theme:DSH Web GUI 的 cerrda 暗色主题

前言

DeepSeek Harness (DSH) 采用“一切皆插件”的架构理念,允许用户通过插件扩展功能。在 Web GUI 的使用场景中,开发者常需要定制视觉风格。dsh-cerrda-theme 是一个部署级静态 web 插件,它为 DSH Web GUI 提供了一套基于 cerrda 风格的暗色主题方案,解决了原生界面定制化的需求。

核心功能

该插件包含以下视觉与技术特性:

  • 配色体系:采用 rose/purple oklch 配色体系。
  • 视觉组件:包含 Liquid Glass 风格的输入栏与 hero 面板,以及 SVG 位移滤镜实现的回到底部按钮。
  • 动态背景:集成 Silk WebGL2 动态背景,并包含 CardSpotlight、Ripple、ShimmerBorder 等交互效果。
  • 字体与样式:使用 Sora / Fraunces / JetBrains Mono 字体,以及 CSS 液态玻璃效果(应用于侧边栏、详情列、会话头部、工具卡片等)。

安装与启用

安装该插件需要 pnpm 已在系统 PATH 上。安装后,需重启 DSH 进程才能使配置生效。

安装命令:

dsh plugin --profile web add dsh-cerrda-theme

验证安装:

dsh --profile web --dump-config | grep dsh-cerrda-theme

在浏览器开发者工具的网络面板中,应能观察到 /plugins/dsh-cerrda-theme/client.js 的请求。

卸载:

dsh plugin --profile web remove dsh-cerrda-theme

重启进程后,界面将恢复默认外观。

本地开发

如果需要在本地修改主题源码,需遵循以下工作流:

  1. 修改源码:所有样式与逻辑的改动位于 src/ 目录下的 cerrda-theme-client.js。
  2. 构建:在仓库根目录执行构建命令。该命令会先运行 scripts/vendor-number-flow.mjs 将 vendor 资源内联,再运行 scripts/build.mjs 生成 lib/client.js。
  3. 生效:
    • 若仅修改 CSS/JS 内容,可在 DSH 启动后硬刷新浏览器页面(Ctrl+Shift+R)。
    • 若修改了 package.json 或 cordis.patch.yml,必须重启 DSH 进程。

本地未发布版本(仓库根目录即为包)的安装命令:

dsh plugin --profile web add .

工作原理

该插件作为一个 bundle 包,与 @deepseek-ai/dsh-base 等底层包机制一致:

  • Bundle Patch:dsh.bundle.patch 指向 ./cordis.patch.yml,安装后会将本包追加进 dsh.profile.bundles 层栈,在启动时参与组合。
  • Client 注入:dsh.client 声明浏览器 half,dsh-client-modules 会将其收录进 window.__DSH_BOOT__,并在服务 /plugins/dsh-cerrda-theme/client.js。
  • 宿主与导出:main 字段指向空宿主 half,exports["./client"] 导出浏览器 bundle,通过 window.__ModuleLoader__.load 注册,并手动注入 CSS 样式。

注意事项

  • 进程重启:Web profile 的热更新(HMR)已禁用,bundle 层变更仅在进程启动时应用,因此安装或修改配置后必须重启 DSH。
  • 依赖要求:确保 pnpm 已正确安装并在系统路径中。
  • 源码审查:安装任何社区插件前,建议检查源码与许可证(本项目为 MIT 协议)。

生态位置

该插件由用户 Cerrda 维护,可在社区目录 dsh-cerrda-theme 查看,源码位于 GitHub。

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

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

小夜