valley-liang
梁文谷:替换 DeepSeek Harness Web 品牌标识,并按北京时间高峰时段切换图片。
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 28, 2026
- Updated
- Aug 28, 2026
Introduction
梁文谷(dsh-valley-liang)
把 DeepSeek Harness Web 界面左上角(侧栏)和对话页欢迎语处的官方鲸鱼标,换成你自己的 logo。
纯客户端插件:不往宿主加任何服务,只占用两个品牌插槽。
原理
DSH Web 的侧栏鲸鱼不是一个写死的图片,而是一个插槽占用者:
- 侧栏图标 →
sidebar.brand.mark(size 24) - 对话页欢迎图标 →
conversation.hero.brand.mark(size 34)
官方包 @deepseek-ai/dsh-client-ui-brand-official 在 priority 0 注册鲸鱼标。
插槽系统(SlotCore)的规则是 priority 最低者渲染,同 priority 重复注册会报错。
本插件在 priority -100 注册你的 logo——稳定遮蔽官方鲸鱼,且永不与官方注册冲突。
想换回鲸鱼,停用/卸载本插件即可,官方注册仍然在,无需改任何官方文件。
附加行为:
- 悬停大图——鼠标放到小图标上弹出 256px 预览(portal 到 body,带圆角阴影
和弹出动效),移开即消失;预览层
pointer-events:none,绝不遮挡点击。 - 高峰期换图——北京时间周一至周五 9:00–12:00、14:00–18:00 显示
assets/logo-peak.*(嘘 🤫),其余时间显示assets/logo.*。页面开着也会 每分钟自查时钟,到点自动切换。时段在client/client.template.js的PEAK_RANGES里改。
换 logo(日常操作)
把你的新图放到 assets/logo.png(或 logo.jpg / logo.webp / logo.gif /
logo.svg,每种用途同目录下只能有一个),高峰图命名为 logo-peak.*,然后:
cd dsh-valley-liang
npm run build # 把图片内联进 client/client.js
重启 dsh web(或等 HMR 组合刷新)后刷新页面生效。
图片会被 base64 内联进 JS bundle(DSH 的插件通道只下发 client.js 一个文件, 没有静态资源路由)。图标实际显示高度只有 24/34px,导出 256px 见方足矣; 构建脚本对超过 ~300KB 的源图会提示。
安装
方式一:tarball 分发包(推荐,离线可用)
dsh plugin --profile web add ./dsh-valley-liang-0.1.0.tgz
CLI 会:把包解到 profile 的 node_modules → 按 cordis.patch.yml 的 insert
声明把 dsh-valley-liang 追加进 dsh.profile.bundles → 自动补齐基础 bundle。
重启 dsh web 生效。包内 client.js 已预构建,安装方不需要 Node 构建步骤
(安装走宿主 dsh CLI 的 pnpm 转发)。
方式二:本地目录(开发迭代用,改动实时生效)
dsh plugin --profile web add /path/to/dsh-valley-liang
pnpm 会以 link: 方式接入——源目录里 npm run build 后刷新页面即可看到新图,
无需重装。
方式三:手动挂载(不想走 CLI 时)
- 把包目录放进
~/.dsh/profiles/web/node_modules/; - 在
~/.dsh/profiles/web/package.json的dsh.profile.bundles数组末尾加"dsh-valley-liang"; - 重启
dsh web。
发布到 npm 后(npm publish),别人就只是一条:
dsh plugin --profile web add dsh-valley-liang。
分发包里含作者的个人照片(
assets/logo*.png),装上即显示同样的图; 想换自己的图见上一节。高峰时段按北京时间内置于包内,修改需重新构建。
卸载 / 停用
- 停用:在 profile 的
cordis.patch.yml里加一行- id: valley-liang+disabled: true(插件市场 UI 的开关写的也是这个)。 - 卸载:
dsh plugin --profile web remove dsh-valley-liang。
文件结构
package.json dsh.client 声明(platform: web + inject),exports["./client"]
cordis.patch.yml bundle 补丁:把本插件 insert 进 profile 组合
lib/index.js node 半区(空 apply,仅为让 loader 挂载本包)
client/client.template.js 浏览器端源码(ModuleLoader 工厂,占位符 + 高峰时段配置)
client/client.js 构建产物(由 scripts/build.mjs 生成,勿手改)
scripts/build.mjs 内联 assets/logo.*、logo-peak.* → client/client.js
assets/logo.* 平时显示的 logo
assets/logo-peak.* 高峰期显示的 logo(缺省则始终用 logo.*)