READMESource: main@eccf730e
dsh-font-adjust
给 DSH(DeepSeek Harness) Web 界面加一行「字体调整」:字号、字体、字重、行高、文字颜色,拖动即生效,保存后下次打开还在,一键恢复默认。
官方设置里已经有字号和字体,但没有字重、行高、颜色,也没有把这几项放在一起的实时预览。这个插件补的就是这几项。
这是一个 DSH client 插件(
dsh.client+cordis.patch.ymlbundle),零依赖,不改动 DSH 本体。
装
node install.mjs --check # 先看会改什么,不写盘
node install.mjs # 装
脚本做三件事:把文件真拷贝进 profile/node_modules/dsh-font-adjust(不用 pnpm —— 本地路径会被建成 junction,桌面端插件列表读不到)、往 profile 的 dependencies 记一行来源、往 dsh.profile.bundles 末尾加 dsh-font-adjust。改 package.json 前自动备份成 package.json.bak-<时间戳>,重复跑幂等。
改完重启 DSH。插件管理里能看到「字体调整」,可以开关。
卸载:node install.mjs --uninstall。
用
打开 设置 → 通用,滚到底部的「字体调整」:
| 控件 | 范围 | 作用 |
|---|---|---|
| 字号 | 12–22 px | 会话正文基准。标题、表格、行高按官方那条阶梯一起缩放 |
| 字体 | 任意本机字体名,逗号分隔 | 直接填 Microsoft YaHei, sans-serif;留空用系统默认栈 |
| 字重 | 300 / 400 / 500 / 600 / 700 | 作用于正文,标题和加粗保持自己的层级 |
| 行高 | 1.2–2.2 倍 | 按当前字号换算成像素 |
| 文字颜色 | 取色器或 #rrggbb |
留空跟随主题(浅色/深色自动适配) |
- 实时预览:面板底部那块文字跟着变;同时会话正文当场就变,不用保存。
- 保存设置:写进浏览器 localStorage(键
dsh-font-adjust:v1),下次打开自动套用。不点保存,这次刷新就恢复原样。 - 恢复默认:清掉保存值,所有项回到 14px / 系统字体 / 400 / 1.71 / 跟随主题。
为什么这么写
- 字号走官方变量:官方把整条排版阶梯都挂在
--dsh-content-font-size上(--dsw-font-markdown-h1之类都是calc(21px + var(--dsh-content-font-delta)))。改这一个变量,标题/表格/行高自己跟着走,不用逐个 class 追。插件在body上写这个变量,比官方那条body.style内联样式优先级更高。 - 字体走
--dsh-font-family-text:官方 base.css 里--dsw-font-family就引用它。注入时按 CSS 规则清洗字体名(去引号尖括号、通用字族不加引号),避免拼出坏值。 - 行高走
--dsw-font-markdown-base一族:官方的正文行高是calc(24px + delta),跟字号绑死。要独立控制行高,只能覆盖这几个 shorthand 变量。 - 作用域是
[data-slot="conversation.chat.flow"]:只动会话正文,侧栏、工具栏、输入框不动,布局不会被拉坏。 - 零依赖:不 import 任何
@deepseek-ai/*的值。store 服务在静态模块表里就用它(面板自动重渲染),拿不到就退回组件内useState,两条路都不炸。
已知边界
- 只覆盖会话正文。侧栏、设置面板、输入框不跟着变——这是有意的,避免把界面骨架撑坏。要全界面生效,把
SCOPE改成'body'。 - 颜色不随主题切换。选了深色文字再切到暗色主题,字会看不清;面板里有「跟随主题」按钮一键清掉。官方字号设置页同理不管颜色。
- 不枚举本机字体。浏览器不给已安装字体列表,输入框只给常见字体建议(datalist),实际能填任意字体名,缺字体会回退。
- 保存是本机浏览器级的。localStorage 跟着浏览器走,换浏览器/清缓存就没了;不是 profile 级配置。
文件
| 文件 | 作用 |
|---|---|
package.json |
声明 bundle patch 与 dsh.client |
cordis.patch.yml |
往 profile 插一行插件 |
index.js |
Host 半,空实现(逻辑全在浏览器) |
client.js |
全部功能:样式注入 + 设置面板 |
locale/zh.json、locale/en.json |
插件管理里显示的名称与说明 |
icon.svg |
插件图标 |
install.mjs |
装进 / 卸出 profile |
LICENSE |
MIT |
No comments yet. Be the first to write one.