DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

v-hiker /

v-hiker/dsh-message-export

Verified

DSH 插件:把助手回答导出为 PNG / PDF / HTML,保留代码高亮、表格、公式与内联图片

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@670319f0

dsh-message-export

把 DSH 里某一条助手回答导出成 PNG 图片、PDF 或 HTML,保留页面已经渲染好的样子 —— 代码高亮、表格、公式、内联图片都不丢。

功能

点助手回答动作行上的「导出」按钮,菜单里:

菜单项 说明
下载 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)。

安装

# 从源码目录
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 重建)。

目录结构

index.js            host 半边:空的 apply,只让 cordis loader 认得这个 bundle
client.js           全部功能:动作行入口、离屏排版、栅格化、PDF/HTML 输出
cordis.patch.yml    bundle 插入项
locale/             中英文案
icon.svg            图标

边界

  • 依赖浏览器支持 SVG foreignObject 栅格化(Chromium / Firefox 正常)。
  • 跨域图片若未开 CORS,栅格化时会被画布判为「污染」,导出会缺图 —— 这时用「下载 HTML」保底。
  • 超长回答(高度超过 16000 CSS px)会按比例降低 DPR,像素数受浏览器画布上限限制。

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 670319f03eae

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout