返回目录
其他 插件

dsh-persian-rtl

ireza7/dsh-persian-rtl

Persian (Farsi) RTL fix for DeepSeek Harness: automatic per-paragraph direction for assistant answers, thinking cells, tool cells and question boxes

Stars
1
Forks
0
Issues
0
更新
18 天前

PROJECT TOPICS

项目标签

INSTALL REFERENCE

安装参考

未验证
dsh plugin --profile web add github:ireza7/dsh-persian-rtl

该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。

PROJECT README

README

dsh-persian-rtl

Persian (Farsi) RTL fix for DeepSeek Harness — until RTL is handled officially.

What it does

Fully automatic per-paragraph text direction (unicode-bidi: plaintext): every paragraph follows its own first strong character — Persian paragraphs render right-to-left, English ones stay left-to-right. No buttons, no settings.

Covered surfaces:

  • Assistant answers — including while streaming
  • User + steering message bubbles — including composer submit echoes
  • Thinking / reasoning cells (turn-process members and inline reasoning, reasoning flow nodes)
  • Tool-call / tool-result cells — any data-tool row (including ask_user_question rendered inside the chat flow)
  • Question boxes + plan-review cards (composer-takeover cards)

Intelligent mixed-language detection — When a Persian sentence begins with an English word, technical term, or inline code (e.g. React یک کتابخانه است or 1. Node.js را نصب کنید), standard browser first-strong-character heuristics mistakenly classify it as LTR. The plugin dynamically analyzes character composition and enforces RTL base direction with full streaming support.

Latin runs stay intact — code, pre, kbd, and links are isolated LTR, so English words and numbers keep their order inside Persian text instead of jumping around.

Logical geometry fixed — lists, blockquotes, and task checkboxes use inline-start padding/borders, so RTL paragraphs get correctly-sided bullets, quote bars, and gaps.

The composer, sidebar, and settings are left alone, and no shipped renderer is replaced — the plugin only adds CSS.

Install

Pick whichever is easiest — no local clone needed in any of them.

Web UI: open Plugins in the sidebar → install → enter the spec:

github:ireza7/dsh-persian-rtl

Agent tool (Creator mode session):

install_bundle with target = github:ireza7/dsh-persian-rtl

CLI:

dsh plugin --profile web add github:ireza7/dsh-persian-rtl

The bundle takes effect immediately in live profiles (no restart).

Alternatives:

  • Full repo URL: https://github.com/ireza7/dsh-persian-rtl
  • From a local clone: install_bundle with target = /path/to/dsh-persian-rtl
  • From npm (if published): install_bundle with target = dsh-persian-rtl

To remove it later: remove_bundle with the bundle name.

How it works

  • A <style> element is mounted via ctx.effect providing per-paragraph direction and logical geometry fixes.
  • A high-performance, batched MutationObserver (requestAnimationFrame) monitors chat surfaces in real time to identify and correct mixed paragraphs starting with Latin runs, ensuring seamless streaming support without UI flicker.
  • Clean lifecycle management: unmounting clears the observer, timers, and removes all applied attributes leaving zero residue.

License

MIT

CLASSIFICATION EVIDENCE

分类依据

项目类型插件
功能分类其他
规则置信度低

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。