🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

HTML 实时预览 Weihong-Liu/dsh-html-live-preview

DeepSeek Harness
Weihong-Liu39 天前有提交已提供中文文档扫描:未发现敏感能力

在对话里边生成边渲染可交互的 HTML 页面

29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Weihong-Liu/dsh-html-live-preview
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/09/30·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 39 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

写入剪贴板(不计风险)
查看扫描证据(共 1 处,展示前 1 条)
  • 写入剪贴板
    client.js:776
    ? navigator.clipboard.writeText(html)
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 实时预览HTML
  • 边生成边渲染
  • 沙箱化内联渲染

在 DeepSeek Harness 会话里实时预览 HTML:一个 render_html 工具,外加内联、沙箱化、自动撑高的渲染器。

README

由 DeepSeek 最新模型翻译生成
dsh-html-live-preview · HTML 实时预览插件 在 DeepSeek Harness 会话里边写边渲染 HTML:模型调用一个工具,HTML 就随生成过程直接画在对话里——不是代码块,也不是侧边栏。 English · npm 回合结束后预览仍留在回复下方 它能做什么 - 边写边画:模型还在写参数时,预览就开始长出来(容错解析半截 JSON,不必等调用结束)。 - 写完能交互: 在参数写完后按文档顺序执行一次,按钮、动画、图表、canvas 都能跑。 - 不会被折叠掉:回合结束后 DSH 会把工具行收进"过程"折叠区,所以本插件在回合尾部再渲染一份(该槽位不参与折叠)。同一时刻每个调用只有一个 iframe。 - 跟随主题:帧内继承宿主的 --dsw- / --dsh- 变量,另加一组易读别名,亮/暗切换即时生效。 - 报错说人话:帧内脚本异常、子资源加载失败会在卡片下方显示可关闭的提示条;记录被窗口截断、无法重建时也会明确说明,而不是给一张空白框。 环境要求 - DeepSeek Harness 的 web profile(dsh web),已在 0.1.7-rc.2 上验证。 - 插件把 @deepseek-ai/dsh-tools 声明为 peer:版本范围之外 DSH 会拒绝加载并说明原因,而不是等到第一次调用才炸。
展开完整文档(README 剩余 1 节)
dsh-html-live-preview · HTML 实时预览插件

在 DeepSeek Harness 会话里边写边渲染 HTML:模型调用一个工具,HTML 就随生成过程直接画在对话里——不是代码块,也不是侧边栏。

English · npm

回合结束后预览仍留在回复下方

它能做什么

- 边写边画:模型还在写参数时,预览就开始长出来(容错解析半截 JSON,不必等调用结束)。
- 写完能交互: 在参数写完后按文档顺序执行一次,按钮、动画、图表、canvas 都能跑。
- 不会被折叠掉:回合结束后 DSH 会把工具行收进"过程"折叠区,所以本插件在回合尾部再渲染一份(该槽位不参与折叠)。同一时刻每个调用只有一个 iframe。
- 跟随主题:帧内继承宿主的 --dsw- / --dsh- 变量,另加一组易读别名,亮/暗切换即时生效。
- 报错说人话:帧内脚本异常、子资源加载失败会在卡片下方显示可关闭的提示条;记录被窗口截断、无法重建时也会明确说明,而不是给一张空白框。

环境要求

- DeepSeek Harness 的 web profile(dsh web),已在 0.1.7-rc.2 上验证。
- 插件把 @deepseek-ai/dsh-tools 声明为 peer:版本范围之外 DSH 会拒绝加载并说明原因,而不是等到第一次调用才炸。

安装

用装着 Web UI 的那个 profile 安装:

dsh plugin --profile web add dsh-html-live-preview

Web UI 的 插件页面里有同样的操作。安装会自动把 bundle 选中,下一轮组合即挂载(HMR 实时生效)。

从本仓库源码安装(改完代码即生效):

dsh plugin --profile web add link:/绝对路径/dsh-html-live-preview

装完请开一个新会话:已存在的会话保持它启动时的工具目录,所以工具会出现在下一个会话里。

render_html 注册在 tools 注册表的全局层,profile 里每个 agent(含子 agent)都能调用,不需要改预设。

用法

随便怎么说,只要结果是"看得见的东西":

"画一个这周延迟的柱状图" "做个登录页的界面稿,按钮点一下要有反应" "演示快排是怎么分区的"

模型会调用 render_html({ html, title?, height? })。卡片悬停时出现四个控件:看 HTML 源码、复制、重跑脚本、展开高度(默认上限 620px,免得一张预览吃掉整屏)。

工作机制

宿主半边(index.js)只做校验与记账:限制 256 KiB、返回几 token 的回执。
HTML 本体留在会话日志的 tool/call 参数里,所以重开会话/回放照样能渲染,既不额外占存储也不占上下文。

浏览器半边(client.js)是 DSH 客户端模块工厂形式的普通 classic script——不需要构建,除平台内置的 react 外不 import 任何东西:

| 渲染位置 | 时机 | 原因 |
| tool.call.toolview | 回合进行中 | 从半截参数流式渲染 |
| conversation.chat.turnTail | 回合结束后 | 尾部不在折叠区内,预览得以常驻 |

帧本身的关键设计:

1. 常量 receiver 文档:iframe 的 srcdoc 永远是一份固定外壳(CSP + 主题变量 + 测量脚本),模型写的 HTML 只通过 postMessage 注入,因此流式更新不会重载/闪烁。
2. 两阶段注入:流式阶段剥掉 与 on*(innerHTML 插入的 不会执行,但 会);落地后注入完整 HTML 并按序执行一次脚本(外链脚本等 load 再继续)。
3. 沙箱:sandbox="allow-scripts",不含 allow-same-origin(opaque origin)。帧内 CSP 为 default-src 'none'、connect-src 'none'(无 fetch/XHR/WebSocket)、 frame-src/object-src 'none'、base-uri/form-action 'none';放行内联脚本、4 个 CDN(jsdelivr / unpkg / cdnjs / esm.sh)与 data:/https: 图片字体。
链接转发给宿主,校验协议后用外部浏览器打开。
4. 自动高度:帧内 ResizeObserver 回传内容高度(60ms 去抖),卡片夹在内容与上限之间、按 callId 缓存(重挂载不会塌成 0);超出上限的部分保留自己的滚动条,可展开到 2400px。

验证情况

真实 GUI + 真实模型调用(截图见 screenshots/):工具行渲染出卡片;回合结束后预览常驻在回复下方;高度由帧内测量回传(490px / 260px);控制台无报错、无 slot 崩溃。

组件级回归夹具 test/harness.html:用假 window.__ModuleLoader__ + 真 React 直接渲染本插件组件,不需要 DSH、不消耗模型额度,覆盖流式解析、落地执行、清洗、高度上限、展开、源码视图、主题切换、帧内报错:

mkdir -p /tmp/hp && cd /tmp/hp
cp /path/to/dsh-html-live-preview/client.js .
cp /path/to/dsh-html-live-preview/test/harness.html .
curl -sO https://unpkg.com/react@18.3.1/umd/react.development.js
curl -sO https://unpkg.com/react@18.3.1/umd/react-dom.development.js
open harness.html

已知限制

- 不支持 html 围栏自动渲染:DSH 目前没有任何"自定义 fence 渲染"扩展点(ui-primitives 里的 renderCode 是硬编码的),只能走工具调用。这是上游插槽缺口。
- DSH 升级:声明范围是 ^0.1.7-rc.2,范围之外 DSH 会停用本插件并给出原因,不会运行时崩;放宽范围是改一行 + 重新验证。
- 帧内不能联网(设计如此):需要数据的可视化要把数据内联,或用允许的 CDN 加载库。
- 会话窗口截断:如果记录的调用落在已加载窗口之外,卡片会说明无法重建预览。
- 改插件自身代码需要重启:DSH 只热重载 profile 清单与补丁,客户端 bundle 与宿主模块按进程缓存。

发布

tag 驱动:npm version patch && git push origin main --follow-tags 就会让 GitHub Actions
校验 tag 与版本号、通过 npm Trusted Publishing 发布(带 provenance 证明)并自动建 Release。
详见 RELEASING.md。

许可

MIT
预览分享卡片长什么样 ↓Weihong-Liu/dsh-html-live-preview
分享 · DeepSeek Harness Hub
Weihong-Liu/dsh-html-live-preview

在对话里边生成边渲染可交互的 HTML 页面

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部