前言¶
DSH 的插件生態強調「一切皆插件」。在 dsh web composition 中,如果需要在 composer 區域增加一個可編輯 Markdown 的草稿面,同時保留原生 composer 的提交路徑,可以安裝 @mars.liu/dsh-rich-editor。它是一個第三方 dsh web 插件,用於在 composer 區域提供富 Markdown notebook。
資料中給出 owner 字段爲 MarchLiu;包名前綴爲 @mars.liu,倉庫寫法另見 mars。本文不將這些不同寫法混同,只引用已覈實的包名、命令和能力。
插件定位¶
@mars.liu/dsh-rich-editor 在 composer 區域提供兩個入口:
- 工具行切換:
conversation.input.left - composer 上下文棧中的編輯器卡片:
conversation.input.dock
兩個入口對應同一個按會話隔離的 notebook 草稿。它的定位不是替代原生 composer,而是在 composer 區域增加一個可編輯 Markdown 的草稿面,並與原生 composer 共享同一份草稿。
核心功能¶
入口¶
在 composer 區域中,可以通過工具行切換打開編輯器卡片,也可以從 composer 上下文棧中的卡片進入。這兩個入口分別對應 conversation.input.left 和 conversation.input.dock。
草稿保留¶
每個會話保留獨立 notebook。關閉或重開面板、組件重掛載時,草稿會保留。
CodeMirror 6 Markdown 編輯¶
編輯器基於 CodeMirror 6 和 Markdown 語言,提供:
- 草稿語法高亮
- 原生撤銷/重做
- 原生選擇
Enter 鍵列表編輯¶
列表編輯採用 Codex 風格的 Enter 行爲:
- 非空列表項按
Enter打開下一項 - 有序項標記遞增
- 複選項重開爲未勾選
- 縮進保留
- 空列表項按
Enter去除標記
提交¶
提交通過 conversation 服務的 send 路徑完成。失敗時,會在 session 的 composer 通知渠道顯示,並保留當前草稿。
與原生 composer 同步¶
富編輯器與原生 composer 共享同一草稿。打開/關閉面板和即時編輯都會雙向同步;成功提交後,雙方草稿都會清空。
安裝與啓用¶
先確認環境滿足以下要求:
- dsh family >=0.0.1-rc.1
- dsh web composition 已掛載
dsh-client-ui-conversation
安裝命令如下,用於把插件加入 web profile:
dsh plugin --profile web add @mars.liu/dsh-rich-editor
如果你手工組成 profile,需要把該 bundle 寫入 dsh.profile.bundles。包自帶 cordis.patch.yml 補丁,用於增加 ui-rich-editor 行;手工 profile 場景下,要自行保證這個 bundle 被列出。
從本地 checkout 構建和測試:
pnpm install && pnpm run build && pnpm test
典型用法¶
1、安裝並啓用插件後,在 composer 區域打開 notebook 卡片。
2、輸入 Markdown 內容。編輯器會按 Markdown 語法高亮草稿,並提供原生撤銷/重做和選擇。
3、編輯列表時,在列表項上按 Enter:
- 非空項打開下一項
- 有序項標記遞增
- 複選項以未勾選狀態重開
- 縮進保留
- 空列表項去除標記
4、按 Mod+Enter 提交。提交走 conversation 服務的 send 路徑;失敗會在 session 的 composer 通知渠道顯示,草稿仍保留。
適用場景與注意¶
適合在 dsh web composition 中,希望在 composer 區域使用 Markdown 草稿編輯,同時保持與原生 composer 草稿同步和提交路徑一致的開發者。
使用前注意:
- 許可證爲 MIT。
- 插件以當前 dsh 進程權限運行;安裝前應檢查源碼、依賴和許可證。
- 依賴 dsh family >=0.0.1-rc.1,並且需要掛載
dsh-client-ui-conversation的 dsh web composition。 - 有序列表前項編輯/刪除不會重編號後續項。
- 不支持
/和@觸發集成。 - 草稿僅會話生命週期有效,整頁刷新會丟失。
- 未接入圖片附件粘貼/拖入。
- 瀏覽器 bundle 內聯約 268 kB gzip 的 CodeMirror 依賴。
- 開發階段對不完整 npm dsh snapshot 使用 stub 和別名到本地 harness checkout;待 dsh 發佈完整可安裝閉包後移除。
結尾¶
@mars.liu/dsh-rich-editor 提供了一個可落地的 composer 區域富 Markdown 編輯面:兩個入口、會話級草稿、CodeMirror 6 Markdown 編輯、Enter 列表編輯,以及與原生 composer 的草稿同步。
社區目錄頁:已覈實資料中未提供具體 URL;社區目錄屬於 DSH 插件生態的第三方目錄,不是官方應用商店。
GitHub:https://github.com/MarchLiu/dsh-rich-editor(資料中另有 git+https://github.com/mars/dsh-rich-editor.git 寫法,二者未統一,使用前請覈對發佈來源)。