READMESource: main@c89e027c
dsh-retirement-countdown
一个 UI 插件:在 DSH 输入框上方常驻一个退休倒计时。点铅笔图标就能改目标日期。
显示在哪
conversation.composer.dock —— 输入框上方那条已被界面分配好空间的 list slot。这里是官方推荐的装饰位:不会挡住宿主控件,也不需要自己去算定位。
- 会话界面里常驻,切换会话不会消失;
- 欢迎页(还没有任何消息的空会话)不显示:那一屏走的是另一个 variant,不渲染 composer dock;
- 颜色全部来自
--dsw-alias-*或currentColor,明暗主题自动跟随。
安装
已发布到 npm:dsh-retirement-countdown@0.1.0
# 任何人(装到自己的 Profile 里)
dsh plugin --profile desktop add dsh-retirement-countdown
# 仓库地址直装
dsh plugin --profile desktop add github:hiyouzheng/dsh-retirement-countdown
# 本地开发(当前开发机就是这么装的,link 到工作区,改代码立即是新的文件)
dsh plugin --profile desktop add link:D:\AITools\sdh\dsh-retirement-countdown
装完刷新一次页面(Ctrl+R / Cmd+R)让浏览器加载新的客户端模块;客户端插件的热更新只在同时跑 pnpm run dev:web 时无需刷新。
卸载:
dsh plugin --profile desktop remove dsh-retirement-countdown
改退休日期
点倒计时右边的 ✎ → 选日期 → 保存。值存在浏览器 localStorage:
| key | 值 |
|---|---|
dsh.retirement-countdown.target |
YYYY-MM-DD,例 2029-06-30 |
只影响这台机器的这个浏览器,不写 Profile、不改配置、不需要重启。清掉 localStorage 就回到默认值(client.js 里的 DEFAULT_TARGET)。
文件结构
| 文件 | 作用 |
|---|---|
package.json |
dsh.bundle.patch + dsh.client(platform: web、immediately、inject 排序) |
cordis.patch.yml |
插入一条插件行 |
index.js |
Host 半边,空 apply()(渲染全在浏览器侧) |
client.js |
window.__ModuleLoader__.load({ id, factory }):拿 React、算倒计时、注册 slot |
locale/en.json、locale/zh.json |
插件页标题「退休倒计时」与描述 |
icon.svg |
插件页图标(原创) |
改造成别的装饰
- 换位置:把
client.js里的conversation.composer.dock换成别的 slot key(例如conversation.session.header.actions、sidebar.footer.action、shell.overlay),组件拿到的 props 会随之变化; - 换内容:
Countdown组件就是普通 React 函数组件,随便改; - 注意两条硬约束:不要
require('@deepseek-ai/dsh-client-ui-primitives')(会被悄悄改坏),不要在组件里往document.body追加节点。
发布与收录(社区市场)
- 作者/版权:Ghost Zhou(
package.json的author、LICENSE的版权行)。 - 已发布:npm dsh-retirement-countdown@0.1.0(
latest=0.1.0,9 个文件 / 15.3 KB,公开 tarball 已下载解包核对);代码在 hiyouzheng/dsh-retirement-countdown。 - 自建索引源(format 1,已用 DSH 官方校验器验过):https://hiyouzheng.github.io/dsh-retirement-countdown/index.json
- 在 DSH「插件市场」里加这个 URL 就能分发;
marketInstallTarget解析出的安装参数是dsh-retirement-countdown@0.1.0。
- 在 DSH「插件市场」里加这个 URL 就能分发;
- 1024Store:目录条目 PR imsai-sh/awesome-deepseek-harness-plugins#760 已通过 static-review 并自动合并,等站点同步。
- dshfind:它的收录规则是「公开仓库打上
dsh-plugintopic,每天全量同步」,本仓库已加上该 topic(另有dsh、dsh-bundle、countdown、widget),无需投稿。 - 本机 Profile 现状:已从 link 安装切成 npm 安装(
dsh-retirement-countdown@0.1.0),所以之后改工作区代码不会再影响正在运行的插件,要改就得发新版本。
验收状态
node --check index.js && node --check client.js通过;icon.svg合法,两份 locale JSON 可解析。node scripts/smoke-client.mjs通过:给全局装上假的window.__ModuleLoader__与最小 React 替身,实跑client.js,验证了- 模块 id 等于包名、
factory(require)只取react、返回{ inject: ['slots'], apply }; apply注入并注册到conversation.composer.dock,注册 id 为retirement-countdown;- 钉住
Date.now()后渲染出「100 天 + hh:mm:ss + ✎ 按钮」,已退休分支与en-US文案也都对。
- 模块 id 等于包名、
- 已装进
desktopProfile;dsh --profile desktop --dump-config里能看到- id: retirement-countdown(组合成功,patch 没写错)。 - 发布产物已核对:从
registry.npmjs.org下载0.1.0的 tarball,9 个文件齐全、两个 JS 都能过node --check、dsh.bundle.patch与dsh.client字段都在。 - 未验证:浏览器里的实际观感(位置、间距、明暗主题对比度)。刷新页面后目视一下;要调大小/位置/文案告诉我。
No comments yet. Be the first to write one.