READMESource: main@a9851de2
dsh-fonttune
English | 中文
DeepSeek Harness(DSH)字体插件:设置正文与代码的字体族、各自独立的字号偏移与字重,并按「西文 / 中文」分栏挑字体;配置入口是 设置 → 插件 → 插件配置 里的原生卡片,改完即时生效。
功能
- 正文 / 代码字体 —— 两套独立的字体回退列表,拉丁字体在前、中文字体在后;留空表示完全沿用 DSH 的字体栈
- 正文字号偏移 —— -3 ~ +6 px,作用于正文与界面文字;与 DSH 自己的「字号大小」叠加而不是覆盖,每一档字号连同它的行高一起等比缩放
- 代码字号偏移 —— -3 ~ +6 px,独立作用于代码块与行内代码:调正文不会带动代码,调代码也不会带动正文
- 全局字重 —— 300 ~ 600 任意整数;未设置或 400 都表示沿用 DSH 原本的字重
- 西文 / 中文分栏(简单模式) —— 卡片顶部一个开关:简单模式只给「西文」「中文」两个单选格(正文/代码各一对),高级模式是完整的字体栈编辑器;两种模式共用同一条栈,来回切换不会改动已排好的顺序
- 选字体面板 —— 内置 等宽 / 中文(CJK)/ 拉丁 / 通用 四组预设,Chromium 下再补上「本机已安装」分组;搜索不到的名字可以直接「使用 xxx」新建
- 拖拽排序 —— 已选字体是 chip 列表,可拖动调整回退顺序,同时保留前移 / 后移按钮(键盘与触屏可用)
- 实时预览 —— 中英混排与代码两行,随当前配置即时渲染
兼容性
| 插件版本 | 支持的 DSH 版本 |
|---|---|
| 0.1.4(最新) | 0.1.5-rc.2 |
engines.dsh 下限为 0.1.5-rc.2,兼容声明只列 0.1.5 线的最新版本:它包含这条线的全部修复,是同一大版本里最稳的一版,而同一大版本内的旧版本按语义化版本约定向上兼容。更早或更新的 DSH 未经验证,不作声明。安装或更新时,DSH 市场会依据 package.json 里的 engines.dsh、dsh.compatibility.dshReleases 与 peerDependencies 做宿主兼容预检。
安装
通过 DSH CLI 安装:
dsh plugin --profile web add dsh-fonttune
也可以从 GitHub 安装:
dsh plugin --profile web add github:LyaxZ/dsh-fonttune
或以本地目录安装:
dsh plugin --profile web add <插件目录路径>
安装后重启一次 DSH 并打开 Web UI;之后改设置不需要重启。
使用
- 打开设置 —— 设置 → 插件 → 插件配置 → 展开「字体增强」卡片
- 换字体 —— 简单模式下点「正文 · 西文字体」「正文 · 中文字体」「代码 · 西文字体」「代码 · 中文字体」四个格子选字体;高级模式下用「添加字体」与 chips 编辑器维护完整回退列表
- 调整字号 —— 字号滑块就在对应的字体下面:「正文字号偏移」跟着正文字体、「代码字号偏移」跟着代码字体;再往下是「字重」。拖动松手即生效;改过的字段标「已修改」并可单独重置,卡片底部有「全部重置」
- 预览 —— 卡片底部的中英混排与代码预览用当前配置渲染
- 设置保存在 DSH 的设置文档里(
settings.yaml),跟随配置走
开发
src/shared.cjs—— 纯函数核心:字体名消毒与解析、配置归一化、注入样式的生成src/index.mjs—— 宿主半:注册dsh-fonttune设置命名空间(schemastery schema,含长度与取值范围校验),并通过webserver/index-inject把已保存的声明随首页下发,首帧即是设置里的字体src/client.js—— 浏览器半:设置卡片、选字体面板、字体枚举与样式注入build.mjs—— 零依赖构建:内联共享核心、套上window.__ModuleLoader__.load({id, factory})外壳、拷贝宿主半,并校验客户端 bundle 只 require shell 预注入的模块test/run.mjs—— 离线检查(自建 DOM / cordis / 设置面替身、真实 schemastery schema、CSS 生成与注入、消毒对抗用例、双语文案键一致性);test/下另有几个无头浏览器走查脚本,用真实页面验证卡片渲染与交互- 客户端模块能 require 的只有 shell 静态表里的模块(
react、react/jsx-runtime、react-dom、@deepseek-ai/cordis、@deepseek-ai/dsh-client-*等);dsh.client.inject只是加载顺序声明,不是 require 许可 - 改
src/client.js后刷新页面即可看到变化(客户端模块按内容哈希发版,DSH 的客户端 HMR 也会推送重载);改宿主半(src/index.mjs)或cordis.patch.yml需重启 DSH
License
MIT © 2026 LyaxZ
No comments yet. Be the first to write one.