@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.leftconversation.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 写法,二者未统一,使用前请核对发布来源)。

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

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

Xiaoye