前言¶
在 DeepSeek Harness(DSH)里用 Web 界面和智能体对话时,输入区默认按从左到右(LTR)排版。若你在聊天框里写阿拉伯语或其他从右到左(RTL)文字,光标、对齐和阅读顺序往往不对;若把整个页面改成 RTL,侧栏、列布局和其余 UI 也会一起乱掉。社区插件 dsh-rtl-chat-box(维护者 Mhmd7-7)只改聊天输入框(以及可选的历史消息区)的书写方向,不动页面根布局。下面介绍它做什么、怎么装、怎么用。
这是什么¶
dsh-rtl-chat-box 是 DSH 的客户端(Web)插件:在 dsh web GUI 里增加「聊天框方向」控制。官方简介为:Adds an RTL chat box direction control to the dsh web GUI.
插件当前版本为 0.4.0(MIT 许可证)。在 package.json 中声明与 dsh 0.1.5-rc.2 兼容;其他 dsh 版本未经作者验证。宿主侧 lib/index.js 为空实现,实际逻辑在浏览器端的 lib/client.js(样式表 + 设置项)。
核心功能¶
只动聊天框,不动整页¶
侧栏、分栏和其他界面保持原有 LTR 布局;变更范围限于 composer(输入框)以及你在设置里开启的 transcript 消息文本。
设置项:Settings → General → Chat box direction¶
| 选项 | 作用 |
|---|---|
| RTL | 聊天框变为 RTL:光标、对齐与阅读顺序从右向左。 |
| LTR | 恢复为 LTR。 |
| Auto | 按你输入的内容自动方向:阿拉伯语段落 RTL,英语保持 LTR;列表项、段落、每一行在输入框内(并在 Auto 下于已发送消息中)各自跟随语言。 |
| Smart bidi | 单条消息内阿英混排时保持正确顺序(对输入框使用 unicode-bidi: plaintext);Auto 模式下强制开启。 |
| Also message text | 默认关闭:仅影响聊天框。开启后,已发送消息与 transcript 段落也跟随方向;Auto 下强制开启,否则已发送阿拉伯语仍会按 LTR 显示。 |
在 RTL 模式下,pre / code / kbd / samp 固定为 LTR,避免代码块乱序。
与 Lexical 富文本输入的配合¶
DSH Web GUI 的 composer 不是 textarea,而是 Lexical 绑定的 contenteditable,每行对应块级元素(如 p、li)。插件通过 CSS 作用于宿主及其块级子节点,使 Auto / Smart bidi 不依赖 Lexical 是否在块上写 dir="auto"。
Auto 模式下有序/无序列表会根据每一项的首字符语言决定 marker 在左还是右(例如阿拉伯语项 marker 在右侧)。RTL / LTR 全框模式则整列表统一方向,保留 outside marker 与悬挂缩进。
Auto 下有两类 UI 仍按物理默认(因 unicode-bidi: plaintext 不改变元素的 direction):blockquote 竖线仍在左侧;任务列表 checkbox 间距仍按 GUI 默认物理 margin。全框 RTL 模式会镜像 blockquote 竖线与 checkbox 间距。
偏好持久化¶
方向选择保存在浏览器 localStorage,键名为 dsh-rtl-chat-box,刷新页面后仍生效(安装插件后需按下文重启 web profile,与刷新无关)。
安装与启用¶
插件面向 web profile,安装命令来自仓库 README:
dsh plugin --profile web add "github:Mhmd7-7/dsh-rtl-chat-box"
若使用本地目录而非 GitHub 源,将路径代替上述 spec 即可(README 示例为 Windows 路径形式)。
安装后必须重启 web profile:客户端 bundle 在服务器启动时构建,运行中的 GUI 不会热加载新插件;仅刷新页面不够——宿主对 /plugins/.../client.js 使用不可变缓存,且内容 revision 在启动时写入 window.__DSH_BOOT__。
卸载:
dsh plugin --profile web remove dsh-rtl-chat-box
典型用法¶
- 按上一节命令安装并重启 web profile。
- 打开 DSH Web 界面,进入 Settings → General,找到 Chat box direction。
- 写阿拉伯语或 RTL 脚本时选 RTL 或 Auto;写英语为主时选 LTR 或 Auto。
- 若希望对话记录里的阿拉伯语段落也正确对齐,开启 Also message text(Auto 会自动开启该项)。
- 混排阿英时启用 Smart bidi(Auto 下已包含)。
无需额外配置文件;偏好仅通过上述设置项与 localStorage 保存。
适用场景与注意¶
适合谁: 在 DSH Web GUI 里经常用阿拉伯语或其他 RTL 文字与智能体对话、又希望侧栏和整体界面保持 LTR 的开发者或使用者。
运行范围与权限: DSH 插件以当前 dsh 进程的权限运行。本插件宿主侧无文件、网络或子进程访问;浏览器侧仅向 document.head 注入一条 <style>(插件 fiber 销毁时移除)、读写 localStorage 键 dsh-rtl-chat-box,并在 General 设置注册一行。包内无 runtime npm 依赖,也无 preinstall / install / postinstall / prepare 脚本。目录站点 listing 不等于安全审计,安装前请自行查看源码与 MIT 许可证。
环境: 需要 @deepseek-ai/cordis ^4.0.1(由 profile 解析);Node 版本随你已安装的 dsh,插件本身无单独构建步骤,从 GitHub 安装不需要在 pnpm-workspace.yaml 里配置 allowBuilds。
生态说明: DSH 采用「一切皆插件」的扩展方式;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
链接¶
- 社区目录:dsh-rtl-chat-box
- 源码与完整说明:GitHub — Mhmd7-7/dsh-rtl-chat-box
经过上面的步骤,你可以在不动整页布局的前提下,在 Web 聊天框里稳定切换 RTL、LTR 或按语言自动排版。