dsh-answer-pages:在 DSH 里把回答渲染成单页 HTML 并在 Document Preview 打开

前言

在 DeepSeek Harness(DSH)里做长回答时,常见做法是模型直接输出 Markdown,或靠 shell、heredoc 去调外部渲染脚本。后者在 Windows 上容易被 PowerShell 语法绊住,页面也常常落到用户主目录,再在系统浏览器里打开,和 DSH 右侧 Document Preview 割裂。

dsh-answer-pages 由社区维护者 ShanHaiFish 发布,归类为客户端插件。它把 Answer me with HTML 的渲染思路搬进 DSH:模型只写 Markdown 草稿,插件在本地生成一页离线 HTML,并在应用内 Document Preview 打开。Web 端与桌面端共用同一份插件。该项目与上游无隶属关系,按 MIT 许可内置其渲染器,上游版本固定为 v0.5.11。

这是什么

插件提供三类能力:原生工具 answer_me_with_html、适配 DSH 的 skill、以及会话里的工具卡。渲染结果默认写在当前会话工作区的 .dsh/answer-pages/,不会写到 ~/.answer-me-with-html;工具固定 --no-open,不拉起系统浏览器。

当前 package.json 版本为 0.2.0,许可证 MIT。GitHub 星标为 0(以目录页为准)。

核心功能

下面几项均来自仓库 README,与 cordis.patch.yml 中的行为一致。

原生工具,不绑 shell。 工具名 answer_me_with_html,不再依赖 bash/pwsh 和 heredoc。

Node 运行时由宿主解析。 桌面端优先 ELECTRON_RUN_AS_NODE,Web 端用宿主 Node,再回退 PATH 上的 node;不要求用户自行安装 Node(由 DSH/Electron 环境提供)。

工作区内落盘 + 应用内预览。 默认输出目录为 <会话工作区>/.dsh/answer-pages/;工具卡展示标题、状态、STE/代码警告与错误,「打开页面」指向右侧 Document Preview。

可离线安装。 支持用本地目录绝对路径安装,无需联网、无需 pnpm 构建。

可选 always-on。 在 profile 配置里设 alwaysOn: true 后,可通过系统提示要求每个结论附带一页小页面。

与 dsh-genui 分工。 短小可交互 UI(表格、表单、图表等)适合 dsh-genui 的 dsh-ui 围栏;长篇说明、图多、需打印或离线单文件归档、希望在 Document Preview 阅读的场景,用本插件。同一回答不宜同时产出页面与内联组件;分工规则已内置在 skill(v0.1.1+)。

已知限制:仅支持 HTML 页面渲染;am video / am serve / am export 不在范围内。页面内脚本是否执行取决于 DSH 的 Coding Tools 设置;关闭时仍可静态阅读。尚无图形化设置页,配置写在 profile 的 patch 里。

安装与启用

环境要求: DSH 0.2.1-rc.2 或 0.2.2-rc.1(>=0.2.1-rc.2 且 <0.3.0)。桌面端与 Web 端需各装一次。

从 GitHub 安装(推荐):

  1. 在 DSH 的 Plugins 页 → Add plugin,填入:
github:ShanHaiFish/dsh-answer-pages
  1. 或用 CLI:
dsh plugin --profile desktop add github:ShanHaiFish/dsh-answer-pages
dsh plugin --profile web add github:ShanHaiFish/dsh-answer-pages

本地开发或离线调试时,可在 Add plugin 中填本仓库的绝对路径,或:

dsh plugin --profile desktop add "F:\path\to\dsh-answer-pages"

安装后新开会话再验证。README 提醒:上游另有 npm 包 dsh-answer-me-with-html(他人维护),与本项目不要同时启用,避免同一渲染器两套用法。

插件以当前 DSH 进程权限运行;安装前建议阅读仓库源码与 MIT / LICENSE-answer-me-with-html 声明。

配置

通过 profile 的 cordis.patch.yml 覆盖 answer-pages 行的 config:

- id: answer-pages
  name: dsh-answer-pages
  config:
    outputDir: ''          # 空 = <workspace>/.dsh/answer-pages;也可填绝对路径
    theme: auto            # auto | blueprint | shadcn | paper | 已安装主题
    mode: auto             # auto | light | dark
    style: '80'            # off | 80 | strict
    alwaysOn: false        # true = 每个结论都附带页面
    nodePath: ''           # 手动指定 node;空 = 自动探测
    maxDraftBytes: 200000

修改后重启对应 profile,或等待 HMR 重新加载。

典型用法

正常提问即可;模型会根据 answer-pages skill 判断是否值得出页面。也可以明确要求,例如「用 HTML 解释 TCP 三次握手」。

经过上面的步骤,生成路径会出现在工具卡与回复末尾链接中,点击后在 Document Preview 打开。页面保留上游的主题切换、面板评论、ask 决策和 Reply 按钮等行为(脚本能否运行仍取决于 Coding Tools 设置)。

工作流可概括为:

提问
 └─ 模型读 skill:草稿格式 / 选组件 / 写作规则
      └─ 调用 answer_me_with_html(draft, file_name, theme, mode, style)
           ├─ Host 解析运行时:Electron-as-node → 宿主 Node → PATH node
           ├─ spawn skill/scripts/am.mjs render - --no-open -o <workspace>/.dsh/answer-pages/x.html
           ├─ 解析 ✓ / ✗ Lxx / STE 警告
           └─ 返回 { ok, path, title, warnings, errors }
                ├─ 客户端工具卡:标题 / 状态 / 警告 / 打开按钮
                └─ 打开按钮 → Document Preview

README 记载在 DSH Desktop 0.2.2-rc.1 与 dsh web 0.2.1-rc.2 上已完成安装、Host 工具、渲染与客户端 bundle 等验证;工具卡在 UI 中的最终视觉效果需在使用时自行确认。

适用场景与注意

适合: 需要在 DSH 内阅读长篇技术说明、顺序图/流程图较多的解释页,并希望单文件离线归档或打印/PDF 的场景。

不太适合: 需要按钮回环、常驻面板、可排序表格等短交互时,应优先 dsh-genui,而非本插件。

安全与合规: 插件会 spawn 本地 Node 执行内置 am.mjs 渲染草稿;草稿内容由模型生成,需注意工作区路径与 maxDraftBytes(默认 200000)限制。社区插件目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,安装来源以你信任的 GitHub 仓库为准。

结尾

dsh-answer-pages 把「Markdown 草稿 → 单页 HTML → Document Preview」收成一条原生工具链,减少 shell 依赖并把页面留在会话工作区内。若要查看分类与简介,可打开目录页;细节、配置与开发说明见 GitHub 仓库。

  • 目录页:https://www.skillhub.cn/plugins/ShanHaiFish/dsh-answer-pages
  • GitHub:https://github.com/ShanHaiFish/dsh-answer-pages
  • Releases:https://github.com/ShanHaiFish/dsh-answer-pages/releases
羽毛球分组比赛记分
小程序二维码

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

小夜