前言¶
DeepSeek Harness(DSH)默認會把助手的回覆按 Markdown 渲染,但輸入框仍是純文本編輯器,你已發送的用戶消息在會話時間線裏也往往以純文本顯示。如果你在 composer 裏習慣寫標題、列表、代碼塊或表格,就會出現「寫的時候全是符號、發出去還是原文、只有對面排版好看」的不對稱。
下面介紹的 dsh-better-markdown(維護者 ceasarXuu,GitHub:ceasarXuu/dsh-better-markdown)是運行在瀏覽器側的客戶端插件:在輸入區上方做實時渲染預覽,在編輯區對 Markdown 標記做原位高亮,並把已發送的用戶消息在時間線裏按 Markdown 展示——同時保證複製、會話日誌以及模型實際讀到的文本與原始字節一致。README 標明其爲第三方插件,並非 DeepSeek / DSH 官方組件。
這是什麼¶
- 定位:面向 DSH 會話界面的 Markdown 增強(composer 預覽 + 原位語法高亮 + 用戶消息 Markdown 渲染)。
- 分發:僅通過 GitHub 分發,未發佈到 npm;當前資料中的包版本爲 0.1.0,許可證 MIT。
- 運行面:Web 與 Desktop 界面均可;邏輯主要在瀏覽器端,宿主側只暴露配置開關。
核心功能¶
輸入區上方的實時預覽¶
在 composer 中輸入 Markdown 時,渲染結果會即時出現在輸入區上方,走 DSH 自身的 Markdown 管線,資料中列舉的支持範圍包括:標題、粗體/斜體、行內代碼、列表與任務列表、引用、表格、帶語法高亮的圍欄代碼、鏈接、腳註與數學公式。
編輯區原位語法高亮¶
composer 本體不會把草稿改成 WYSIWYG;插件通過 CSS Custom Highlight API 對 #、**、反引號、列表標記等做降透明度或着色,便於邊寫邊看結構。草稿文本內容不被修改。
用戶消息在時間線中按 Markdown 顯示¶
每條由你編寫併發送的、含 Markdown 語法的消息,可在會話 transcript 中按 Markdown 渲染;複製操作、會話記錄以及傳給模型的文本仍與發送時字節一致。@ 提及等芯片仍使用宿主自帶渲染。
工具欄開關與快捷鍵¶
composer 工具欄提供 M↓ 按鈕,用於切換預覽;⌘⇧M / Ctrl+Shift+M 同樣有效。該選擇在瀏覽器內記住(localStorage 鍵 better-markdown.prefs.v1)。時間線是否渲染 Markdown 由插件配置項 transcript 等決定,而非僅由該按鈕控制。
環境要求¶
安裝前請覈對 README 與 package.json 中的約束:
- DSH:
>=0.2.1-rc.5且<0.3.0 - Node:
>=22 - 界面:Web 或 Desktop
安裝與啓用¶
通過 GitHub 倉庫安裝¶
將 <profile> 替換爲你的 DSH profile 名:
dsh plugin --profile <profile> add github:ceasarXuu/dsh-better-markdown
DSH 應用內 Plugins → Add 可使用同一 spec。若需固定版本,可使用標籤,例如:
dsh plugin --profile <profile> add github:ceasarXuu/dsh-better-markdown#v0.1.0
在網絡更適合作物安裝時,可使用 Release 壓縮包(示例對應 v0.1.0):
dsh plugin --profile <profile> add https://github.com/ceasarXuu/dsh-better-markdown/releases/download/v0.1.0/ceasarxuu-dsh-better-markdown-0.1.0.tgz
配置項(cordis.patch.yml)¶
包安裝進 profile 後,可在 profiles/<profile>/cordis.patch.yml 中插入或調整插件行。資料中的示例:
# profiles/<profile>/cordis.patch.yml
- insert:
- id: better-markdown
name: '@ceasarxuu/dsh-better-markdown'
config:
enabled: true
transcript: true
composer: true
syntax: true
preview: true
頁面加載時,瀏覽器通過同源請求 GET /plugin/better-markdown/config 讀取上述布爾開關。
| 開關 | 默認值 | 作用 |
|---|---|---|
enabled |
true |
總開關;關閉後恢復宿主默認行爲,插件仍保持已安裝 |
transcript |
true |
會話中已發送用戶消息是否按 Markdown 渲染 |
composer |
true |
是否啓用 composer 預覽及工具欄開關 |
syntax |
true |
是否在 composer 內繪製 Markdown 語法高亮 |
preview |
true |
草稿含 Markdown 時是否默認顯示預覽 |
將 enabled 設爲 false 可立即回到純文本體驗。
典型用法¶
- 按上一節命令把插件加入 profile,確認
enabled與各子開關符合需求。 - 啓動或刷新 DSH Web/Desktop,在 composer 中輸入例如
## 小節、列表或圍欄代碼塊,觀察輸入區上方預覽與編輯區高亮。 - 發送消息後,在時間線中查看用戶氣泡是否按 Markdown 顯示;用複製功能覈對文本是否與發送內容一致。
- 若僅需在本機瀏覽器臨時關閉預覽,點 M↓ 或使用 Ctrl+Shift+M(macOS 爲 ⌘⇧M);清除站點數據會恢復由
preview等配置決定的默認行爲。
消息中的 Markdown 檢測與純文本書寫:若無 Markdown 語法,氣泡行爲與宿主默認一致;含語法時才進入渲染路徑。資料說明:代碼塊、表格與縮進塊外的單換行會按 CommonMark 硬換行處理,多行消息不會擠成一段。會話標題、側欄行等宿主生成的純文本區域 intentionally 不改動。
實現要點(便於排錯)¶
- Transcript:在較低優先級註冊
conversation.user.text.node的text鍵,用平臺MarkdownText渲染 run;複製/引用仍讀原文。 - Preview:通過
conversation.input.dock讀取 live draft 並渲染。 - 高亮:
conversation.input.right提供開關,控制器刷新CSS.highlights,只改繪製、不改佈局與 IME。 - 渲染依賴平臺模塊表中的
@deepseek-ai/dsh-client-ui-primitives;模塊不可用時降級爲純文本,避免整頁失敗。
適用場景與注意¶
適合誰:經常在 DSH 裏用 Markdown 寫提示詞、任務清單或帶代碼塊的說明,又希望輸入與歷史消息視覺上與助手回覆一致的開發者。
限制(來自 README):
- composer 爲宿主擁有的 Lexical 編輯器,插件只能裝飾,不能變成完整 WYSIWYG;中文輸入法、撤銷與光標行爲仍屬宿主。
- 原位高亮依賴 CSS Custom Highlight API(Chromium 105+);不支持的瀏覽器會跳過該層,預覽與 transcript 仍可用。
- 插槽契約針對 DSH 0.2.x;未來
conversation.user.text.node或conversation.input.dock變更可能需要插件更新。
安全與信任:插件以當前 DSH 進程權限運行;安裝前請自行審閱 倉庫源碼 與 MIT 許可證。社區目錄 SkillHub 插件頁 爲獨立收錄站點,與 DeepSeek / 幻方無官方從屬關係;DSH 生態奉行「一切皆插件」,第三方包需自行評估後再裝入 profile。
結尾¶
dsh-better-markdown 用一條 GitHub 安裝 spec 把 composer 預覽、原位高亮與會話內用戶消息 Markdown 渲染接到一起,並與助手側 GFM 管線對齊。若你正在使用 DSH 0.2.x 且 Node ≥ 22,可按本文安裝命令啓用後,用工具欄 M↓ 與配置項 transcript / preview 微調行爲。
- 目錄頁:https://www.skillhub.cn/plugins/ceasarXuu/dsh-better-markdown
- GitHub:https://github.com/ceasarXuu/dsh-better-markdown