dsh-deck-builder 📽️
> DeepSeek Harness 工具插件:把 Markdown 一键转成自包含 HTML 演示文稿(幻灯片)。主题可选、键盘翻页、零依赖、零核心改动。
English | 简体中文
一个 DeepSeek Harness(DSH) 的纯工具插件:注册 deck_build 工具,让 agent 把任意 Markdown 内容(研究报告、会议纪要、课程大纲…)渲染成单文件 HTML 幻灯片——用户直接用浏览器打开,←/→ 翻页、f 全屏、打印时每页一张。所有生成逻辑是零依赖纯函数,产物完全自包含(内联 CSS/JS,无外部资源、无网络请求)。
✨ 特性
deck_build工具:markdown→ HTML 幻灯片,返回输出路径/页数/字节数。- 三种主题:
deepseek(DeepSeek 蓝)/light(明亮)/dark(暗色),CSS 变量内联。 - 智能分页:默认按
---/***/___分页,无分隔线时回退到 H1/H2 标题分页。 - 完整 Markdown 渲染:标题、段落、有序/无序列表、代码块、引用、粗斜体、行内代码、链接、图片。
- 零依赖、零核心改动:纯
ctx.tools.register,无客户端 bundle、无网络、无外部资源。 - 纯函数可测:分割/渲染/转义/自包含全部有单测覆盖。
📦 安装
前置:DSH(dsh web 可运行)、Node ≥ 22.19、pnpm。
# GitHub 安装(预构建 lib/ 已提交)
dsh plugin --profile web add "github:Blaczz/dsh-deck-builder#main"
# 本地目录安装
cd dsh-deck-builder && npm install --legacy-peer-deps && npm run build
dsh plugin --profile web add ./dsh-deck-builder安装后重启 dsh web。然后直接对 agent 说"把这份内容做成幻灯片",或让 agent 调用 deck_build 工具。
🎬 使用
在对话里让 agent 生成幻灯片:
把下面这份研究报告做成幻灯片,用 deepseek 主题:
<markdown 内容>agent 会调用 deck_build,产出 deck-<标题>.html。打开该文件:
←/→或空格翻页,Home/End首尾;f全屏;- 打印/导出 PDF 时每张幻灯片一页。
也可手动调用工具参数:
{
"markdown": "# 标题\n正文\n\n---\n\n# 第二页\n更多内容",
"title": "我的演示",
"theme": "deepseek",
"outputPath": "slides/my-deck.html"
}🛠️ 本地开发
npm install --legacy-peer-deps
$env:DSH_NODE_MODULES = "$env:USERPROFILE\.dsh\profiles\node_modules"
npm run setup:dsh-workspace
npm run verify # ★ 一键门禁:clean + typecheck + test + build
npm test # vitest(19 项:分割/渲染/自包含/主题/转义)目录结构
dsh-deck-builder/
├── package.json # dsh.bundle.patch(纯工具插件,无客户端半)
├── cordis.patch.yml # bundle 补丁层
├── scripts/ # build(仅 tsc)/ clean / setup-dsh-workspace / verify
├── src/
│ ├── deck.ts # ★ 纯生成逻辑:splitSlides / renderBlocks / renderDeck
│ ├── theme.ts # 主题 token(light/dark/deepseek)
│ └── index.ts # 宿主半:注册 deck_build 工具
└── tests/ # deck 生成 + manifest 契约🧩 生态定位
- 填补空白:DSH 生态 Slides/PPT 类此前仅有
dsh-openmaic(教学)与dsh-k12-lesson-builder,缺一个通用的"Markdown → 演示文稿"工具;mdPresenter证明"用 DSH 做演示"有真实需求但无人做成插件。 - 技术路线:纯工具插件(
ctx.tools.register+defineTool),复用hccccc01333/dsh-report-html(自包含 HTML)的产物形态。 - 零核心改动:单文件产物 + 零依赖纯函数 +
ctx.effect注册。
⚖️ License
MIT © 2026 Blaczz。独立社区插件,与 DeepSeek Harness 无关。