dsh-deck-builder

by blaczz

2 工具与能力github收录于 08-23

DeepSeek Harness 工具插件:把 Markdown 转成自包含 HTML 幻灯片——多主题、键盘翻页、零依赖、零核心改动

A DeepSeek Harness tool plugin: convert Markdown into a self-contained HTML presentation (slides) — themes, keyboard navigation, zero dependencies, zero core changes.

安装

dsh plugin --profile web add github:blaczz/dsh-deck-builder

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

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 无关。

原始 README: https://github.com/Blaczz/dsh-deck-builder/blob/main/README.zh.md ↗