dsh-codex-like-markdown:DSH 右侧栏 Markdown 就地可编辑预览

前言

在 DeepSeek Harness(DSH)里打开 .md 文件,右侧栏默认是「能看不能改」的预览。内置预览插件的 README 写得很直白:“Preview, not editing. The viewers provide no file editing.”,且当前也没有面向客户端、可直接写工作区文件内容的 API。若你习惯在渲染后的文档上点段落改字、改表格某一格,而不是整篇切到纯源码,就需要额外补一条写入通道和对应的渲染器。

下面介绍社区插件 dsh-codex-like-markdown(维护者 sevenhsu7,GitHub:sevenhsu7/dsh-codex-like-markdown)。它在 DSH 右侧栏提供与内置 Markdown 视图一致的渲染效果,并支持就地编辑——包括表格单元格。分类为客户端插件;当前仓库星标为 0,版本 0.1.0,许可 MIT。

这是什么

一句话:Codex-like Markdown editing for the DSH right Sidebar——文档保持渲染后的样子,点段落、标题或表格单元格,光标落在该处直接改字。

插件自行注册 Remote 命名空间 markdownDocs/write,经 ctx.fs.writeText 写回磁盘;同时注册使用它的渲染器 Markdown(可编辑)。正文渲染复用 @deepseek-ai/dsh-client-ui-primitives 的 MarkdownText,与内置 Markdown 视图同一套组件,因此标题、列表、表格、代码块、公式、脚注等视觉表现应对齐内置预览。

核心功能

打开与编辑

  1. 打开 .md 文件时,在预览渲染器下拉中选择 Markdown(可编辑)(渲染效果与内置 Markdown 只读视图一致;只读预览仍可选内置 Markdown)。
  2. 点击段落、标题、列表项或代码围栏块,该块就地变为可编辑:无额外边框盒子,沿用文档计算出的字体与行高,屏幕上不显示 Markdown 标记(标记在 DOM 中由 CSS 隐藏)。
  3. 点击字符位置,光标通过浏览器命中测试落在对应字符上;输入会立即拼回文档,未保存状态与约 1.2 秒空闲后的自动保存同步更新。
  4. 按 Esc 或 ⌘Enter 关闭当前块;⌘S / Ctrl+S 立即保存;⌥⌘E 在渲染视图与原始 Markdown 之间切换(也可用下拉中的内置 Text 只读查看原文)。

表格与块模型

  • 表格保持渲染器自己的表格布局;点击某一格时,仅在该格上浮出编辑面,回写时只改写该格在行内的字节区间,不动其它格与表结构。
  • 单元格编辑面为单行:回车提交,粘贴中的换行会变成空格。
  • 增删整行、整列等结构性修改需使用源码视图。
  • 源码按空行切块;代码围栏保持完整。每次编辑只替换对应块的 [start, end) 区间,不做「富文本反序列化为 Markdown」。

选中添加到会话

在预览中选中一段文字,浮出操作条可将选中内容添加至会话(中文界面按钮文案为「添加至会话」):以「出处一行 + 被引用段落」的形式插入输入框,光标落在引用后空行处。依赖预览侧拿到输入框的 inputActions;无可用输入框或输入框正在提交时会提示无法添加。

工具栏与其它

  • 工具栏一行:状态提示 · B / I / </> / 🔗 · 保存相关按钮;+ 新增段落 可追加段落并打开编辑。
  • 文件在磁盘上被外部修改时,未保存缓冲不会被静默覆盖;工具栏提供 仍然覆盖 / 从磁盘重新载入(英文界面为 Overwrite / Load from disk),并在你再次编辑前暂停自动保存。
  • 切换标签、切换渲染器、切到源码再切回,当前标签页的草稿仍保留在浏览器内存中(刷新页面不保留)。
  • 界面文案随 DSH 界面语言在中英文之间切换。

写入与安全边界

Remote 方法 markdownDocs/write 接收 { sessionId, path, absolutePath, content, expectedVersion? },返回 saved / stale / denied / missing / error 等状态。写入走宿主文件系统后端:read-only 会话被拒绝,workspace-write 只能写工作区内;传入 expectedVersion 时为 compare-and-set。渲染器不可用则退回纯源码编辑;单块渲染失败则该块显示原文,不会整面板空白。

安装与启用

本包是 profile bundle(package.json 中声明 dsh.bundle.patch),安装后即启用。安装会在宿主进程内执行插件代码,需要授权或 Full access;安装前建议自行查看仓库源码与 MIT 许可证。本包无安装脚本、无额外依赖。

在 Harness 会话里

让 agent 安装时,会使用 plugin_manager 的 action: install_bundle,target 指向本插件目录。

在终端里

先退出 DSH 应用,再执行(路径改为你本机 clone 或解压后的绝对路径):

# macOS 应用自带的 CLI
"/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh" \
  plugin --profile desktop add /absolute/path/to/dsh-codex-like-markdown

卸载使用 remove_bundle。修改 client.js 后通常即时生效(客户端模块注册表监视该 bundle);修改 index.js 需重启应用以加载新模块代。

典型用法

  1. 安装并重启或等待客户端模块加载后,在工作区打开任意 .md 文件。
  2. 在右侧栏文档预览的渲染器下拉中选择 Markdown(可编辑)。
  3. 需要改正文:点击段落或标题,直接打字;改表格:点击目标单元格,编辑后回车或点其它区域提交该格。
  4. 要把文档片段交给当前会话:选中文字 → 操作条 添加至会话。
  5. 需要大改结构或表格行列:按 ⌥⌘E 或切换到 Text / 源码视图编辑 Markdown 原文。
  6. 保存:等待自动保存,或 ⌘S / Ctrl+S;只读预览随时可切回内置 Markdown。

环境要求与已知限制

环境要求: 插件针对已把 @deepseek-ai/dsh-client-ui-sidebar-documentpreview 与 API Gateway 挂进 Web 组合的 Harness 版本开发(README 写明约为 0.2.0-rc.2 前后)。若 profile 缺少 slots、documentPreviews、remote、locale 等服务,客户端半会保持 inactive 而不报错。

使用注意:

  • 编辑过程中新敲的 Markdown 语法会先以原文显示,直到关闭该块(Esc)后才重新渲染;隐藏标记不可手工编辑,在标记旁删字可能导致格式丢失,但不会改变可见文字内容。
  • 块按空行切分;空行隔开的列表或表格会被切成多块;脚注与引用式链接仅在单块内解析。
  • 完整文件读取受预览 maxFileBytes(32 MiB)限制。
  • 写入为整篇替换加可选版本护栏;读与写之间的外部改动会被检测,是否覆盖由用户选择。
  • 插件以当前 DSH 进程权限运行;workspace-write 仍受工作区根目录约束,但安装 bundle 前仍应确认你信任该仓库代码。

结尾

dsh-codex-like-markdown 补的是 DSH 右侧栏「预览可编辑」这一环:渲染与内置 Markdown 对齐,编辑按块与按格回写,并支持选中内容添加至会话。适合经常在 Harness 里改 Markdown 文档、又不想长期盯着源码标记的开发者。

社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装与使用以仓库 README 与许可证为准。

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

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

Xiaoye