前言¶
在 DSH 桌面端写长提示时,输入框通常是纯文本:标题、列表、代码围栏要靠肉眼对齐 #、- 和反引号,发送前很难判断最终排版。助手回复侧往往已有 Markdown 渲染,用户自己发出的消息却仍是原文,对话里阅读体验不一致。
dsh-markdown-live 是社区维护的客户端插件(维护者 9426Haruka,仓库 9426Haruka/dsh-markdown-live)。它在不改动提交内容的前提下,为编写区做实时 Markdown 呈现,并把已发送的用户文本走宿主同一套 Markdown 渲染。插件归类为「客户端」,当前 GitHub 星标为 0;许可证 MIT,package 版本 0.2.9。
这是什么¶
一句话:DSH 桌面端插件——输入框内实时 Markdown 渲染,外加用户消息按 Markdown 显示;发给后端的仍是字面 Markdown,逐字节不变。
实现上全部浏览器逻辑集中在单文件 client.js,无构建步骤;Host 侧 index.js 负责在「设置 → 插件」中提供可开关项。插件依赖 DSH 自带的 @deepseek-ai/dsh-client-locale 与 @deepseek-ai/dsh-client-ui-conversation 两个 client 插件,并面向 DSH 桌面版 0.2.x(web 平台的 client bundle)。
核心功能¶
输入框(Composer)¶
- 实时渲染:打字或粘贴 Markdown 时,语法立即以样式呈现,无需先发送。
- 标记淡出:光标所在行保留淡显语法标记;其余行的
#、*、~~、反引号、[]()、-、>等自动隐去,接近所见即所得。 - 块级样式:支持
#~######标题、>引用、无序/有序/任务列表(含缩进)、代码围栏(含语言名,非光标行可收起围栏行)、---分割线。 - 交互:列表/引用中
Shift+Enter自动延续;Backspace可移除标记或退出空代码行;代码围栏自动补全;多行粘贴进列表/引用会自动补前缀。 - 中文输入:拼音组合阶段正文颜色正常;标记与正文之间的空格为普通文本节点,光标可停在其中。
- 提交不变:渲染只作用于显示层(Lexical 格式位与 DOM class),提交文本仍是原始 Markdown。
草稿超过 12000 字符时,为保流畅会暂停实时渲染。
已发送的用户消息¶
覆盖宿主 conversation.user.text.node 的 text 单元格(priority -1),使用 @deepseek-ai/dsh-client-ui-primitives 的 MarkdownText 渲染 raw。@ 提及、技能 chip、消息操作按钮保留;file/folder/skill 等节点仍走宿主原渲染器。普通换行会保留。
支持的语法(摘要)¶
行内:粗体、斜体、删除线、行内代码、链接与图片语法(图片按链接样式,不内联加载)。块级:标题(# 后需空格与内容)、引用、列表、任务列表、``` / ~~~ 围栏、分割线。围栏内不做行内解析;输入框内不对代码做语法高亮(已发送消息中的代码块由宿主高亮)。
自定义样式¶
颜色通过 CSS 变量暴露,可在 DSH 自定义样式中覆盖,例如:
[data-composer-input] {
--dml-code-bg: #eceef0; /* 行内代码背景 */
--dml-code-block-bg: #eceef0; /* 代码块背景 */
--dml-mark-ink: rgba(127, 127, 127, 0.55); /* 语法标记颜色 */
}
安装与启用¶
本仓库即插件 bundle 目录(含 package.json、cordis.patch.yml、index.js、client.js)。须先将该目录放到本机,再在 DSH 中安装:
- 打开 设置 → 插件,使用「安装插件 / 从本地安装」,选择插件目录;或
- 通过 agent 的
plugin_manager工具:
plugin_manager install_bundle(target = "<插件目录的绝对路径>")
安装后列表显示名为 dsh-markdown-live,可随时开关;重载客户端后生效。卸载:在设置中禁用或移除;插件不修改 profile 之外的文件。
插件以当前 DSH 进程权限在客户端运行,安装前建议阅读仓库源码与 MIT 许可证,确认符合你的使用环境。
典型用法¶
无需额外配置项:启用插件后,在对话输入框直接写 Markdown 即可看到实时样式;发送后,你的用户消息会以 Markdown 排版显示,而 API/会话里保存的仍是相同字面文本。
开发或二次修改时,改 client.js 后宿主会热重载 client bundle。语法检查:
node --check client.js
适用场景与注意¶
适合:经常在 DSH 里写结构化提示(标题、列表、代码块、任务清单)的开发者;希望发送前后视觉一致、又必须保持提交文本为纯 Markdown 的场景。
已知限制(来自仓库说明):
- 表格(
|行)未适配,按普通文本显示。 - 富文本粘贴会按纯文本 Markdown 重新着色,不保留 HTML 样式。
- 依赖 DSH 内部 Lexical 节点结构,DSH 大版本升级后可能需要适配。
社区插件目录 skillhub.cn 上的 dsh-markdown-live 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,目录站用于发现与分发社区作品。
结尾¶
dsh-markdown-live 把编写区的 Markdown 预览和已发送用户消息的 Markdown 展示补到同一客户端插件里,且不改提交字面量。需要试用或贡献代码时,可看目录页与 GitHub 仓库:
- 目录:https://www.skillhub.cn/plugins/9426Haruka/dsh-markdown-live
- 源码:https://github.com/9426Haruka/dsh-markdown-live