dsh-font-plugin
其他 活跃维护

dsh-font-plugin

wtksana/dsh-font-plugin

优化开发场景字体渲染的轻量插件,支持多类编码格式自动适配,安装后无需额外配置即可为开发文档、代码编辑器提供清晰易读的字体展示效果,降低长时间阅读的视觉疲劳。

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
27 KB
仓库大小
23 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:wtksana/dsh-font-plugin
git clone https://github.com/wtksana/dsh-font-plugin.git
git clone git@github.com:wtksana/dsh-font-plugin.git
README.md main

dsh-font-plugin

A DeepSeek Harness (dsh) plugin: font family and ligature controls for the Web UI, rendered in Settings → Plugins → Plugin configuration with the official card style.

Features

  • Font Family : Editor — overrides --dsw-font-family (UI + Markdown body text)
  • Font Family : Code — overrides --ds-font-family-code (code blocks / commands / logs)
  • Font LigaturesAuto (theme default) / On / Off

Font families are entered as comma-separated font stacks (e.g. MiSans, Microsoft YaHei, sans-serif); quoted or unquoted names both work, and single names are quoted automatically with a system fallback. Saving stores exactly what you typed (a value equal to the official default is still written — an override is marked by the field's presence in the user layer, per the official plugin-configuration contract); Reset returns a field to the theme default.

Weight and size are provided by the official theme settings (Appearance) since dsh 0.1.2; this plugin intentionally leaves those to the official surface.

Defaults mirror the official @deepseek-ai/dsh-client-ui-theme base stylesheet. Changes apply after Save and persist in the dsh settings document ($DSH_HOME/settings.yaml, namespace dsh-font). UI copy is localized (zh / en) through the official ctx.locale mechanism.

Install

From npm

dsh plugin --profile web add dsh-font-plugin

From GitHub

dsh plugin --profile web add github:wtksana/dsh-font-plugin

Prebuilt bundles (lib/) are committed, so no build step or prepare authorization is required at install time.

Local development

dsh plugin --profile web add ./path/to/dsh-font-plugin

Then start dsh (restart required after bundle edits, since client bundle revisions are computed at boot):

dsh --profile web

Configuration

Open Settings → Plugins → Plugin configuration in the Web UI, expand the dsh-font-plugin card, edit the fields and press Save.

Or edit $DSH_HOME/settings.yaml directly:

dsh-font:
  editorFont: MiSans
  codeFont: MiSans
  ligatures: auto

dsh plugin remove dsh-font-plugin uninstalls both the package and its patch layer.

Development notes

This package is a dual-face plugin:

  • lib/index.js — host half: registers the dsh-font settings namespace via ctx.settings.register('dsh-font', FontSettingsSchema, { applies: 'live' }). The schema is exported as FontSettingsSchema, deliberately not as Config: Cordis validates a row's own config against a plugin's Config export, and a settings schema with a required field would fail the row at boot.
  • lib/client.js — browser half: dsh.client bundle (__ModuleLoader__.load + exports.apply). The style tags are created at factory materialization with data-plugin / data-plugin-css markers so the client module system inventories them for HMR teardown; the card registers into settings.plugin.item keyed by the namespace, and fonts apply via CSS variables with !important (the ui-theme base stylesheet may inject after our style tag).

Card semantics follow the official plugin-configuration contract: a field counts as overridden by its presence in the raw user layer, a Reset stages a clear (targeting the composition base, falling back to the bundled default), and saving a value equal to the official default still stores it instead of silently clearing it. The bundled defaults (DEFAULT_CFG, FONT_TOKENS) mirror the host schema defaults and the ui-theme base stylesheet — when you change a default, update both halves.

Client bundle revisions are computed at boot — restart dsh after bundle edits.

License

MIT