前言¶
在 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 视图同一套组件,因此标题、列表、表格、代码块、公式、脚注等视觉表现应对齐内置预览。
核心功能¶
打开与编辑¶
- 打开
.md文件时,在预览渲染器下拉中选择 Markdown(可编辑)(渲染效果与内置 Markdown 只读视图一致;只读预览仍可选内置 Markdown)。 - 点击段落、标题、列表项或代码围栏块,该块就地变为可编辑:无额外边框盒子,沿用文档计算出的字体与行高,屏幕上不显示 Markdown 标记(标记在 DOM 中由 CSS 隐藏)。
- 点击字符位置,光标通过浏览器命中测试落在对应字符上;输入会立即拼回文档,未保存状态与约 1.2 秒空闲后的自动保存同步更新。
- 按
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 需重启应用以加载新模块代。
典型用法¶
- 安装并重启或等待客户端模块加载后,在工作区打开任意
.md文件。 - 在右侧栏文档预览的渲染器下拉中选择 Markdown(可编辑)。
- 需要改正文:点击段落或标题,直接打字;改表格:点击目标单元格,编辑后回车或点其它区域提交该格。
- 要把文档片段交给当前会话:选中文字 → 操作条 添加至会话。
- 需要大改结构或表格行列:按
⌥⌘E或切换到 Text / 源码视图编辑 Markdown 原文。 - 保存:等待自动保存,或
⌘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 文档、又不想长期盯着源码标记的开发者。
- 社区目录页:https://www.skillhub.cn/plugins/sevenhsu7/dsh-codex-like-markdown
- 源码与完整说明:https://github.com/sevenhsu7/dsh-codex-like-markdown
社区插件目录(如 SkillHub)为独立站点,与 DeepSeek / 幻方无官方从属关系;安装与使用以仓库 README 与许可证为准。