DeepSeek Harness(DSH)采用插件化架构,开发者可以通过安装社区主题插件快速切换界面风格。dsh-theme-newsprint 是一款将 Typora newsprint 主题的报纸排版气质移植到 DSH Web GUI 的插件。它通过纯 CSS 实现暖白报纸与暖褐暗色方案,并引入衬线字体栈和特定的排版笔画,为 DSH 提供一份具有阅读感的视觉风格。
核心特性¶
插件核心特性包括:
* 纯 CSS 实现:无 hooks,无图片资产,无运行时依赖。
* 双配色方案:支持暖白纸张与暖褐暗色两套配色。
* 衬线字体栈:正文使用 Georgia → PT Serif → 思源宋体 → 宋体 的降级字体栈。
* 排版笔画:包含 h1、h3、blockquote 等元素的报纸排版笔画。
* 埋点机制:使用 cordis 埋点插件,不依赖 @deepseek-ai/dsh-client-ui-theme。
安装¶
通过 dsh plugin 命令安装,插件本身是一个普通的 profile bundle。
# 从仓库安装
dsh plugin --profile web add github:2754LM/dsh-theme-newsprint
# 或安装预构建包
dsh plugin --profile web add https://github.com/2754LM/dsh-theme-newsprint/releases/latest/download/dsh-theme-newsprint.tgz
安装完成后刷新浏览器即可生效。若主题未出现,需重启一次 dsh(bundle 列表在启动时读取)。
启用与停用¶
通过编辑配置文件控制主题的启用与停用。
- 打开配置文件:
~/.dsh/profiles/web/cordis.patch.yml。 - 添加或修改条目:
- id: newsprint
disabled: true # true = 停用;false 或删除这一行 = 启用
加载器会自动热重载。插件以客户端模式运行,修改配置后普通刷新浏览器即可生效,无需重启 dsh。
排版与配色¶
排版笔画¶
排版的核心在于笔画。插件定义了以下排版规则:
| 元素 | 处理方式 |
|---|---|
h1 |
下方一条 1px 细线,常规字重,上方留 2em |
h3 |
恢复常规字重,不逐级加粗 |
blockquote |
左侧 5px 粗边框 + 斜体 + 弱化墨色 |
thead th |
大写 |
tr:nth-child(even) |
斑马行 |
hr |
只保留一条 1px 底线 |
a |
默认无下划线,悬停时显示 |
img |
题注使用暗砖红调 |
配色方案¶
配色方案集中在 lib/client.js 的 SCHEMES 中。两套方案共用 buildTokens() 角色映射,修改一处即可全局生效。
- 亮色:底色为暖白
#f5f3ed,墨色为深褐#1f0909,强调色为海蓝#065588。 - 暗色:底色为暖褐黑
#1a1815(非纯黑),墨色为暖白#ece7dd,强调色提亮为#5aa9d6。
开发调试¶
若要修改配色,只需编辑 lib/client.js 中的 SCHEMES。修改后刷新浏览器即可,因为插件的 <style> 是客户端挂载时注入的。
回归测试需要本机有 Chrome:
npm test
若 ws 不在本包旁边,可用 DSH_ROOT 指向任一带 ws 的 checkout:
DSH_ROOT=/path/to/deepseek-harness npm test
注意事项¶
- 字体依赖:插件字体均调用系统已有的字族,不内嵌任何字体文件。
- 多主题冲突:多主题并存会互相叠加,建议只留一个启用,其余写上
disabled: true。 - 暗色逻辑:暗色不是亮色的机械反转,而是暖调暗色,暗阶间距比亮阶更宽。
- 许可证:插件采用 MIT 许可证。
dsh-theme-newsprint 通过纯 CSS 和系统字体栈,为 DSH 带来了报纸级的阅读体验。更多细节与源码,请参考 GitHub 仓库:https://github.com/2754LM/dsh-theme-newsprint。