@mars.liu/dsh-rich-editor:DSH composer 區域的富 Markdown notebook

前言

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 寫法,二者未統一,使用前請覈對發佈來源)。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜