跳到主内容

dsh-share

29Star2Fork0Issue1Watching

把 DSH Web 对话里的单轮或多轮问答导出为 PNG 图片或 Markdown,支持多选、宽度字号调节与中英文。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
dshdsh-plugin

安装

命令web profile
$ dsh plugin --profile web add dsh-share

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 hellodigua/dsh-share:先查看仓库 https://github.com/hellodigua/dsh-share 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness Web 对话加入分享图片能力:把单轮或多轮问答导出为 PNG 图片或 Markdown,多选交互与 DeepSeek 官网一致,宽度、字号、是否隐藏思考过程都可以在弹窗里现调。

核心能力

  • 在每轮问答下方与会话顶部右侧各加入一个分享按钮,分别预选当前问答或默认全选当前已加载的问答进入选择模式
  • 支持不连续多选:在问题和回答两侧各放一个联动勾选框,也可直接点击整组内容快速勾选或取消
  • 长内容滚动时勾选框会吸顶跟随,直到滚出该轮问答范围才让位
  • 一键复制图片到剪贴板,或下载 PNG、Markdown 文件,文件名形如 dsh-share-20260819-153012.png
  • 导出图片保留 Markdown、代码块、表格、图片与工具调用摘要;可单独关闭"不展示过程"只保留提问和最终回答
  • 预览弹窗里可调宽度(手机 375 / 平板 768 / 电脑 1024)与字号(标准 16 / 大 18 / 超大 20),并对长图支持滚动预览

技术实现

  • 语言: TypeScript(含 React 18 客户端组件)
  • 关键依赖: @deepseek-ai/dsh-client-runtime(slots/locale)、@deepseek-ai/dsh-client-ui-primitives(IconShareOutline16、Tooltip)、html-to-image(DOM → PNG Blob)、turndown + turndown-plugin-gfm(DOM → GFM Markdown)
  • 架构模式: 纯 Web 客户端插件。Host 端 src/index.ts 是空 apply(),仅声明 name 让 DSH 发现客户端 bundle;客户端 apply() 通过 DSH 官方 slots.inject 把两个 React 组件挂到 conversation.chat.assistant-actions 和 conversation.session.header.utilities 插槽,并通过 slots.register 的 inject 字段把 ShareRuntime 实例注入到每个组件实例
  • 入口文件: src/index.ts(Host 占位) + src/client/index.ts(Web 客户端 apply 与导出 API)

适用场景

想把 DSH Web 上某次有价值的对话整理出来发给同事、贴到文章里、或留档备份的普通用户。多轮问答不用手动拼接截图,勾几下就能拿到一张或一组干净的图;想拿到可二次编辑的文本版也能一键下载 Markdown。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness^0.1.0-rc.6由 package.json 的 dsh.client.inject 与 peerDependencies 声明;cordis.patch.yml 仅声明插件插入点
Node.js^22.19.0 || >=24.0.0由 package.json#engines 声明,仅在本地构建/打包时生效
React^18.2.0Web 客户端组件所依赖
浏览器支持 <dialog> 与 dialog.showModal预览弹窗基于原生 <dialog> 元素;复制图片依赖 ClipboardItem API(不支持时回退为下载 PNG)
操作系统跨平台仅依赖浏览器,不引入任何原生模块

安装方式

dsh plugin --profile web add github:hellodigua/dsh-share

配置项

配置类型说明默认值
width枚举 phone / tablet / desktop导出图片的画布宽度:手机 375、平板 768、电脑 1024(像素)tablet
fontSize枚举 normal / large / xlarge导出图片正文字号:标准 16、大 18、超大 20(像素)normal
hideProcess布尔是否在导出图中隐藏思考、工具调用与中间步骤,只保留提问和最终回答false

上述设置保存在当前浏览器的 localStorage(键名 dsh-share.width / dsh-share.font-size / dsh-share.hide-process),跨会话保留;在隐私模式或浏览器禁用 localStorage 时回到默认值,分享功能不受影响。

常见问题

Q: 安装后在哪能找到分享入口?

A: 会出现两个入口:每个问答的操作区多出一个圆形分享按钮,点击进入选择模式且只预选当前问答;会话顶部右侧多出一个分享按钮,点击进入选择模式并默认全选当前已加载问答。两个入口都打开同一个多选底栏,不会动 DSH 官方的按钮栏。

Q: 导出的图片里能否隐藏思考过程、工具调用、中间步骤?

A: 可以。预览弹窗里有"不展示过程"开关,开启后每条回答只保留最后一个最终回答步骤,工具调用与中间步骤会从 PNG 和 Markdown 中一起剔除;用户消息不受该开关影响。设置会写到 localStorage,下次打开自动恢复。

Q: 复制图片到剪贴板失败怎么办?

A: "复制图片"按钮依赖浏览器的 ClipboardItem 与 navigator.clipboard.write。浏览器不支持、权限被拒或非安全上下文时,状态行会显示"当前浏览器不支持复制图片,请下载 PNG"或"复制失败,请下载 PNG"。此时改用"下载图片"按钮即可拿到 PNG,文件名形如 dsh-share-YYYYMMDD-HHMMSS.png。

Q: 插件会读取或修改 DSH 官方的按钮栏、对话 DOM 吗?

A: 不会。分享入口只挂在 DSH 官方的 conversation.chat.assistant-actions 和 conversation.session.header.utilities 插槽;多选模式通过稳定的 data-* 属性(data-chat-flow-kind、data-turn-tail、data-conversation-scroll 等)添加勾选框,不依赖 CSS Module 生成的类名,也不扫描或修改按钮栏 DOM。

Q: 能否只选择页面顶部之外、还没渲染出来的旧问答?

A: 不能。多选模式只能在当前会话页面上已经渲染并完成加载的轮次之间选择。需要更早的内容时,请先把页面向上滚动让 DSH 把那几轮问答加载到 DOM,再进入选择模式勾选。

Q: 配置(宽度、字号、不展示过程)保存在哪里?

A: 保存在当前浏览器的 localStorage,键名分别是 dsh-share.width、dsh-share.font-size、dsh-share.hide-process。在隐私/无痕模式或浏览器禁用 localStorage 时设置只对当前会话生效,分享功能本身仍可正常使用。

Q: 卸载插件会影响已经导出的 PNG 或 Markdown 吗?

A: 不会。导出文件已在用户本地,插件卸载只影响 DSH Web 端是否再显示分享按钮。通过 dsh plugin --profile web remove 卸载即可,已导出的图片和 Markdown 文件不受影响。

Q: 插件支持哪些平台?需要本地原生模块吗?

A: 仅作为 DSH Web 客户端插件运行在浏览器里,不依赖任何原生模块;只要 DSH Web Profile 正常,浏览器支持 <dialog> 与 dialog.showModal 即可使用,Windows / macOS / Linux 桌面端都可以。

上手难度

入门 — 安装后即可看到分享按钮,进入多选模式默认全选当前问答,点"生成图片"就拿到 PNG;调节宽度、字号和"不展示过程"都在弹窗内,无需阅读文档。

已知问题与限制

  • 复制图片到剪贴板依赖浏览器授予 Clipboard API 权限;权限被拒或浏览器不支持时会显示对应提示,仍可下载 PNG(src/client/preview-dialog.ts:401-418)
  • 无法读取的远程资源(跨域图片等)会以透明 GIF 占位跳过,不会让整张图生成失败(src/client/preview-dialog.ts:13-14、src/client/preview-dialog.ts:19-27)
  • 多选模式只能在当前会话页面已经渲染并完成的问答里选择;想要更早内容需先向上滚动加载(README.md:81)
  • DSH 调整官方对话结构(如修改 data-chat-flow-kind 等稳定属性)后,本插件的多选逻辑需要同步适配(README.md:75)
  • 预览弹窗的图片生成不支持中途取消;连续切换宽度、字号或过程开关时只渲染最后一次停留的设置(src/client/runtime.ts:570-617)

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/hellodigua/dsh-share)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录