dsh-message-export:把单条助手回答导出为 PNG、PDF 或 HTML

前言

在 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 存下来排查

实现上,导出会把回复重新排版到离屏舞台再栅格化,而不是直接截屏。简要流程:

  1. 用框架自带的 data-chat-* 属性定位到那一轮回答;
  2. 把回答的行克隆进离屏 stage;
  3. 把所有被折叠 / 滚动截断的容器展开,使内容完整可见;
  4. 嵌入文档里所有样式表(含主题变量),保证离屏渲染与页面一致;
  5. 通过 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。

典型用法

  1. 在 DSH 桌面配置(--profile desktop)中按上文命令安装并重启。
  2. 打开任意对话,定位到需要留档的助手回答。
  3. 在该回答动作行点击「导出」,按需求选择 PNG(是否含提问)、复制为图片、PDF 或 HTML。
  4. 若 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
羽毛球分组比赛记分
小程序二维码

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

Xiaoye