← 返回列表
未验证
让阿拉伯语界面右对齐,代码仍保持从左到右
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/31 · 已提供中文文档
DeepSeek Harness Web UI 的阿拉伯语(RTL)文本修复——一个浏览器端 Cordis 客户端插件
综合分
28.3
GitHub 分
28.3
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add almezaniy/Deepseek-Harness-RTL该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
deepseek-harness-rtl
一个浏览器端(Cordis 客户端插件),让阿拉伯语文本在 DeepSeek Harness 界面中正确显示:RTL 对齐、混合句子标点不混乱、编辑器从右侧开始、代码保持 LTR。
一个浏览器端 Cordis 客户端插件,让阿拉伯语(RTL)文本在 DeepSeek Harness 网页界面中正确渲染:RTL 对齐、混合句子标点整洁、RTL 编辑器,以及保持从左到右的代码区域。
npm
license
截图:启用修复后的阿拉伯语文本 — Arabic text with the fix enabled
启用修复后的界面:RTL 段落、混合句子中标点正确、代码保持 LTR。
The UI with the fix on: RTL paragraphs, correct punctuation in mixed sentences, code still LTR.
工作原理 / How it works
页面加载时,此插件会向对话注入一个 CSS 样式表:
On page load it injects a stylesheet that:
| 区域 | Area | 行为 | Behavior |
|---|---|---|---|
| 消息气泡 | User bubbles | direction: rtl + 解除隔离 | RTL + un-isolate |
| 回复段落 | Assistant prose | direction: rtl | RTL paragraph |
| 思考正文 | Thinking body | direction: rtl | RTL |
| 编辑器 | Composer | direction: rtl | RTL typing |
| 代码 | Code | unicode-bidi: plaintext | auto-detect (LTR for code) |
该插件是双面的,与每个 DSH 客户端插件一样:
| 文件 | 运行于 | 作用 |
|---|---|---|
| index.js | Node(宿主) | main 入口 — 一个空操作的 apply()。它绝不能触碰 window。 |
| client.js | 浏览器 | exports["./client"] — 真正的工作:注入样式表。 |
package.json 声明了 dsh.client.platform: "web",正是这一点让宿主的 client-modules 节点在 /plugins/deepseek-harness-rtl/client.js 处向浏览器提供 client.js。
安装 / Install
要求 / Requirements
- 运行 web 配置(浏览器 GUI)的 DeepSeek Harness。
- PATH 中有 pnpm。
- 使用其他配置名称?传入 -Profile 。
方法一 — 安装脚本(最简单) / Method 1 — one command
powershell -File install.ps1
another profile:
powershell -File install.ps1 -Profile myweb
link this folder instead of installing from npm (for development):
powershell -File install.ps1 -Local
它在配置中运行 pnpm add,并将 ui-rtl-fix 行追加到 cordis.patch.yml(幂等)。
方法二 — 手动 / Method 2 — manual
cd ~/.dsh/profiles/web # $DSH_HOME defaults to ~/.dsh
pnpm add deepseek-harness-rtl
然后将以下代码块添加到同一文件夹中的 cordis.patch.yml:
Then add this block to cordis.patch.yml in the same folder:
- insert:
- id: ui-rtl-fix
name: 'deepseek-harness-rtl'
id 是自由形式的行标识符;而 name 必须与已安装包的名称匹配。
id 是自由形式的行标识符;name 必须与已安装包的名称匹配。
⚠️ 需要重启 / إعادة تشغيل مطلوبة
加载器在启动时读取组合配置。请重启一次 Web 应用(宿主)。
仅重新打开浏览器标签页是不够的。
验证 / التحقق
重启后 / after the restart:
curl -s -o /dev/null -w "%{http_code}\n" \
http://127.0.0.1:3080/plugins/deepseek-harness-rtl/client.js # expect 200
以及在浏览器开发者工具中 / and in the browser devtools console:
document.querySelector('style[data-plugin="deepseek-harness-rtl"]') // not null
故障排除 / حل المشكلات
| 症状 / Symptom | 原因 / Cause | 解决方案 / Fix |
|---|---|---|
| 启动时出现 window is not defined | 包的 main 指向 client.js —— 加载器在 Node 中导入它 | main 应为 index.js,而 client.js 放在 exports["./client"] 下 |
| 包已加载但没有任何变化 | 行存在但 dsh.client.platform 未声明 | 将 dsh.client 添加到 package.json |
| 重启后修复消失 | 手动修改的副本位于 node_modules 内,会被 pnpm install 覆盖 | 通过 pnpm add 安装(作为真正的依赖),而不是复制到 node_modules |
| /plugins/... 路径返回 404 | 包名与 client.js 中的 id 不匹配 | 两个名称必须完全一致 |
CSS 层 / طبقتا الأنماط
- 第 1 层(可移植) 针对构建稳定的锚点 —— data-chat-flow-kind
属性、data-input-mirror / data-input-backdrop,以及结构性
元素(p、li、textarea、pre、code)。这使修复能在
不同的 Harness 构建中持续生效。
- 第 2 层(针对特定构建) 针对某次部署所发布的确切 CSS 模块哈希
(.gdEzaW_bubble、[class*="Sxvs8a_root"]、……)。这些用于优化
结果;如果未来的升级重命名了它们,这些规则会静默停止匹配,
而第 1 层会保持主要行为。
当界面构建发生变化时,欢迎为第 2 层提交更新贡献。
欢迎为更新构建刷新第 2 层的 PR。
贡献 / المساهمة
git clone https://github.com/almezaniy/Deepseek-Harness-RTL.git
cd Deepseek-Harness-RTL
powershell -File install.ps1 -Local # links this checkout into your profile
编辑 client.js,重启 Harness,重新加载标签页。
备注 / ملاحظات
- 非侵入式:仅注入 CSS,无其他副作用。
- 非侵入式:仅注入 CSS,无其他内容。
许可证
MIT —— 参见 LICENSE。扫码进群