前言¶
DeepSeek Harness(DSH)的 Web 界面按从左到右(LTR)编写:默认样式未设置 direction,消息元素也通常不带 dir。在对话里出现波斯语、阿拉伯语或希伯来语时,段落会继承 LTR 排版,表现为右对齐混乱、列表标记与引用竖线在错误一侧、句末标点位置不对,以及波斯语与英文混排行内顺序错乱。下面介绍社区插件 DeepSeek Harness RTL(farzin-cs/deepseek-harness-rtl),它在浏览器端为 transcript 与 Markdown 表面补上双向文本(bidi)支持,无需构建步骤与 Host 服务。
这是什么¶
DeepSeek Harness RTL 是面向 DSH desktop/Web profile 的插件 bundle,由维护者 Farzin-CS 提供,许可证为 MIT。实现方式是一只样式表和一小段 DOM 观察逻辑,随 Client 模块启动时挂载;只影响 [data-chat-flow] 与 [class*="_markdown_"] 区域,侧栏、设置等界面仍保持 LTR 布局。
核心功能¶
按块解析方向¶
每个段落、列表项、标题、引用和表格单元格会按 UAX #9「首强字符」(first-strong)规则解析自身基础方向,同一条消息里 RTL 与 LTR 段落可以并存。
对齐与混排¶
块按解析后的方向对齐,而不是继承外壳的 LTR。若以英文术语开头但主体为波斯语的行(例如 - `useState`: وضعیت کامپوننت),插件会用「波斯语占优」启发式将其钉在 RTL,避免整行被按 LTR 阅读。
代码保持 LTR¶
pre、code、kbd、samp 及代码块装饰强制 LTR 并隔离,波斯语句中的路径、命令与内联代码不会参与错误重排。
列表与引用的逻辑几何¶
缩进、引用竖线与任务列表复选框使用 inline-start / inline-end,RTL 列表标记可保持在右侧且不与正文重叠。
输入区¶
普通 input / textarea 设置 dir="auto";Lexical 编辑器在其可编辑根上已有同类处理。
安装与启用¶
在 Harness 的 Plugin Manager 中,以仓库地址作为安装规格即可:
github:Farzin-CS/DeepSeek-Harness-RTL
若需固定版本,可使用发布标签:
github:Farzin-CS/DeepSeek-Harness-RTL#v1.0.1
(package.json 中当前 bundle 版本为 1.0.1。)
安装后,bundle 会在 profile 中其它 bundle 之后插入一行 Loader(rtl-bidi)。安装完成后刷新页面一次;样式表与观察器在 Client 模块启动时挂载。可在 Settings → Plugins 中随时禁用或移除。
插件以当前 DSH 进程及浏览器上下文权限运行;安装前建议浏览 GitHub 源码并确认 MIT 许可证是否符合你的合规要求。
验证渲染¶
仓库提供本地对照页面:test/fixture.html 复现 transcript DOM 与相关 Markdown CSS;test/compare.html 并排展示安装前后效果。README 中给出了基于 Chromium 的无头截图示例(将 file:///<repo>/test/fixture.html?plugin=1 中的 <repo> 换为本地克隆路径)。对同一 URL 使用 --dump-dom 可看到钉住方向的块带有 data-dsh-dir="rtl" 或 data-dsh-dir="ltr",仅含数字或标点的块则不带该属性。
适用场景与已知限制¶
适合:在 DSH Web UI 中经常阅读或撰写波斯语、阿拉伯语、希伯来语,或与英文标识符、文件名、代码混排的用户。
需注意:
- 方向按块用 first-strong 与波斯语占优规则决定;刻意以英文开头、仅夹带少量波斯词的句子仍会保持 LTR。
- Markdown 表格列顺序仍为 LTR;单元格内文字按单元格各自对齐。
- 阿拉伯系字形依赖浏览器回退字体,bundle 不自带波斯语字体。
- 仅含数字或标点的块继承周围环境方向。
开发与许可证¶
client.js 为平台 window.__ModuleLoader__.load({ id, factory }) 格式的预构建浏览器模块,无编译步骤;本地链接安装后改文件并刷新页面即可验证。样式表以模板字符串写在模块顶部,顺序为:正文规则、代码规则、以及覆盖启发式的钉方向规则。
更多说明与对比图见 SkillHub 目录页 与 GitHub 仓库。SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系。