前言¶
在 DSH 里和助手对话时,一条回答里往往混着代码块、表格、公式和内联图片。要留档或分享,常见做法是整页截屏或手动复制 Markdown——前者分辨率与排版不可控,后者很难还原页面里已经渲染好的样式。
DeepSeek Harness 采用「一切皆插件」的扩展方式;社区插件目录(如 SkillHub)由社区维护,与 DeepSeek / 幻方无官方从属关系。下面介绍客户端插件 dsh-message-export(维护者 v-hiker):在对话界面里针对某一条助手回答导出 PNG、PDF 或 HTML,尽量保留代码高亮、表格、公式与内联图片等已渲染效果。
这是什么¶
dsh-message-export 是 DSH 的客户端(Web)插件,当前版本 0.0.1,许可证 MIT。它在助手回答动作行上增加「导出」入口,把选定的那一轮回复(可选是否带上你的提问)输出为图片、PDF 或单文件 HTML,而不是对可见区域做简单截屏。
核心功能¶
点助手回答动作行上的「导出」按钮后,菜单项与含义如下(以项目 README 为准):
| 菜单项 | 说明 |
|---|---|
| 下载 PNG | 只含这一条回答 |
| 下载 PNG(含提问) | 回答 + 你发的那句话 |
| 复制为图片 | PNG 直接写入剪贴板 |
| 下载 PDF | A4 分页 + 页边距,图片质量输出 |
| 下载 HTML | 单文件 HTML,浏览器打开后 Ctrl+P 可存成矢量 PDF(文字可选中) |
| 诊断信息 | 抓不到内容 / 高度异常时,把诊断 JSON 存下来排查 |
实现上,导出会把回复重新排版到离屏舞台再栅格化,而不是直接截屏。简要流程:
- 用框架自带的
data-chat-*属性定位到那一轮回答; - 把回答的行克隆进离屏 stage;
- 把所有被折叠 / 滚动截断的容器展开,使内容完整可见;
- 嵌入文档里所有样式表(含主题变量),保证离屏渲染与页面一致;
- 通过 SVG
foreignObject栅格化到 canvas,再落成 PNG。
与输出相关的参数:四周留白 28px;浏览器允许的最大画布边 16000px——超高的回答会优先降低 DPR,而不是切图。若抓取高度小于 60px,会被判定为异常,并自动另存诊断文件(dme-diag-*.json / *.html)。
安装与启用¶
安装命令须按仓库 README 执行,不要凭插件名拼接 dsh plugin add github:owner/repo。
从源码目录安装:
dsh plugin --profile desktop add file:<插件目录>/dsh-message-export
或先打包再安装:
cd <插件目录>/dsh-message-export
npm pack --pack-destination ../dist
dsh plugin --profile desktop add "<插件目录>/dist/dsh-message-export-0.0.1.tgz"
装完后重启 DSH(或等待宿主推送 client bundle 重建)。插件在 package.json 中声明为 Web 客户端注入,依赖 @deepseek-ai/dsh-client-ui-conversation,并通过 cordis.patch.yml 挂载 client bundle。
典型用法¶
- 在 DSH 桌面配置(
--profile desktop)中按上文命令安装并重启。 - 打开任意对话,定位到需要留档的助手回答。
- 在该回答动作行点击「导出」,按需求选择 PNG(是否含提问)、复制为图片、PDF 或 HTML。
- 若 PNG/PDF 缺图或高度异常,可先使用「诊断信息」保存 JSON,或改用「下载 HTML」在浏览器中打开后再打印为 PDF。
适用场景与注意¶
适合:需要把单条回答以接近界面样式归档、发文档或做内部分享的 DSH 用户;希望 PDF 分页或 HTML 可选中文字再转矢量 PDF 的场景。
边界与限制(README 已说明):
- 依赖浏览器对 SVG
foreignObject栅格化的支持(Chromium / Firefox 正常)。 - 跨域图片若未开启 CORS,栅格化时 canvas 可能被判为「污染」,导出会缺图——此时可用「下载 HTML」保底。
- 超长回答(高度超过 16000 CSS px)会按比例降低 DPR,像素数受浏览器画布上限限制。
安全提示:插件以当前 DSH 进程权限在客户端运行,安装前请自行查看 GitHub 源码 与 MIT 许可证,确认符合你的环境策略。
结尾¶
dsh-message-export 把「单条助手回答」从对话里抽出来,用离屏排版 + 栅格化的方式导出 PNG、PDF 或 HTML,尽量保留代码高亮、表格、公式与内联图片。需要安装步骤与菜单说明时,以仓库 README 为准。
- 社区目录页:https://www.skillhub.cn/plugins/v-hiker/dsh-message-export
- 源码与文档:https://github.com/v-hiker/dsh-message-export