dsh-ppt
v0.4.5
Published
DSH 演示文稿插件:Markdown 生成网页放映与可编辑 PPTX,长表格自动分页,内置 5 套主题、备注与转场动画。
Maintainers
Readme
dsh-ppt
一句话 / 一篇文档 → 完整演示文稿:HTML 网页放映 + PPTX 导出,5 套视觉主题,页间转场 + 要点入场动画,中英双语。
DSH(DeepSeek Harness)演示文稿技能 + 工具插件:把一句话、一段文字或一篇 Markdown 文档变成可直接放映的 HTML 网页 与可编辑的 PPTX。纯 Node 实现,零运行时依赖,Windows / macOS / Linux 同一份代码。
能力一览
| 能力 | 说明 |
| --- | --- |
| ppt_create 工具 | Markdown / 结构化 slides → *.html + *.pptx + *.json 三件套 |
| ppt_themes 工具 | 列出 5 套内置主题与适用场景;传 preview: true, outputDir: "dist" 生成主题对比页 + 每套一张 SVG 色板卡(可直接进 README/npm 首屏) |
| 7 种页型 | 封面 / 章节 / 要点 / 核心观点 / 金句 / 表格 / 结束页 |
| 演讲者备注 | <!-- 备注: ... --> 或 notes 字段:HTML 按 S 呼出,PPTX 原生备注页(演示者视图) |
| 动效(motion) | 默认开:HTML 页间淡入 + 要点逐条入场;PPTX 原生转场 + 要点逐条点击显现;motion: 'off' / --motion off 产出纯静态 |
| Markdown 进阶 | 表格(\| ... \|)、引用金句(>)、备注注释自动识别成对应页型 |
| dsh-ppt 技能 | 完整 SOP 注册进 DSH:从一句话到成品 deck 的六步流水线 |
| 裸 SKILL.md | 把 skills/dsh-ppt/ 复制到 Claude Code / Cursor / Gemini CLI / Codex 即可跨 harness 使用 |
| 视觉引擎 | 复用 hyperframes 视觉风格库,5 套主题 HTML 与 PPTX 同源同色 |
示例对话:
把这句话做成 PPT:「AI 客服把首次响应时间压缩到 8 秒」,主题用科技感深色。
把
docs/季度汇报.md做成双语演示文稿,导出 PPTX。
兼容性
2026-09-21:当前发布包经官方 CLI 安装到隔离 profile,在源码构建的 Harness 0.1.6-alpha.2 上与另外两个下载量前三插件共同加载,18 个插件工具注册正常;日历/邮件配置自检、PPT 主题查询和 17 行表格生成通过。测试本体基于官方 alpha.2 发布提交,另含工具调度器 Symbol.for 修复(93badd88)。本轮未连接真实邮箱或日历服务。
已在官方 @deepseek-ai/[email protected]、Node 24.16.0 上验证(2026-09-11):18 个组件与 Modlens 同载,工具 schema、技能注册及离线只读调用检查通过。采用 cordis.patch.yml + dsh.bundle.patch 组合包模型。Node 要求与该版本 Harness 一致:22.19 及以上的 22.x,或 24 及以上。外部服务的实际业务操作需按各组件配置单独验证。
安装
dsh plugin --profile web add dsh-ppt重启后即可使用 ppt_create / ppt_themes 工具,并自动加载 dsh-ppt 技能。插件自带空配置,不会弄崩启动。
快速开始
DSH 内(推荐)
1. ppt_themes { preview: true, outputDir: "dist" } # 看 5 套主题 + 生成对比页
2. ppt_create {
title: "把会议减半",
content: "# 问题\n- 周会太多\n\n# 方案\n- 异步决策",
theme: "data",
lang: "zh"
}
3. 打开返回的 HTML 路径(浏览器放映),PPTX 用 PowerPoint / WPS / Keynote 编辑任意 harness(裸 SKILL.md)
把 skills/dsh-ppt/ 复制到任意 Agent Skills 目录,然后:
node <skill-dir>/scripts/build-deck.mjs \
--title "产品发布" \
--content deck.md \
--theme data \
--lang zh \
--out dist/deck输出三件套:
默认不会覆盖已有同名产物:三件套中任一文件存在时会整组追加 -1、-2… 后缀;只有显式传 overwrite: true(CLI 为 --overwrite)才会覆盖。
| 文件 | 用途 |
| --- | --- |
| *.html | 独立网页放映:← → 翻页,V 演讲者视图(独立窗口:备注/下一页/计时/进度),S 备注,G 缩略图总览,F 全屏,P 打印,? 快捷键,Esc 关闭 |
| *.pptx | 16:9 可编辑演示文稿(OOXML 由插件手写,zip 用 node:zlib,无第三方依赖) |
| *.json | 结构化 manifest(版本、主题、语言、每页内容) |
内置主题
| ID | 名称 | 情绪 | 适用 |
| --- | --- | --- | --- |
| data | 数据漂移(默认) | 未来 / 沉浸 | AI、技术发布、研究 |
| swiss | 瑞士脉冲 | 精准 / 理性 | 数据、SaaS、开发者工具 |
| velvet | 天鹅绒标准 | 高级 / 克制 | 高管汇报、品牌、融资路演 |
| soft | 柔和信号 | 温暖 / 人本 | 品牌故事、培训、个人分享 |
| bold | 极繁大字 | 大声 / 动能 | 产品发布、活动、大事件 |
主题灵感来自 hyperframes 的 visual-styles.md,完整色板见 skills/dsh-ppt/references/themes.md。也可运行 ppt_themes { preview: true, outputDir: "dist" } 生成并排对比页与 SVG 色板卡。
Markdown 输入规则
- 第一个
# 标题→ 封面标题;其下第一段 → 封面副标题。 - 每个
## 小节→ 一页:有列表生成bullets页,无内容生成section过渡页。 - 没有标题的纯文本 → 第一段作封面,后续每 5 句一页。
- 只有一句话 → 自动生成「封面 → 核心观点 → 结束页」三页完整结构。
- 长表格自动分页:每页重复表头,最多 8 行数据;备注只放第一页。最多 8 列、每格 60 字符,超限会提示拆分。短行补空白,三种产物保留相同数据。
maxSlides计算分页后的总页数;超过限制时先报错,不落盘、不静默删掉中间页。可提高配置上限(最多 120)或拆分文稿。- 需要精确控制时用结构化
slides(cover | section | bullets | statement | quote | table | closing),表格使用rows,备注使用notes。
配置
插件无必填配置。可选:
- id: dsh-ppt
config:
outputDir: E:\decks # 可选;默认会话工作目录
maxSlides: 40 # 可选;默认 60(3–120)
defaultTheme: data # 可选;ppt_create 未指定 theme 时使用
defaultLang: zh # 可选;ppt_create 未指定 lang 时使用(zh/en/bilingual)也可用环境变量 DSH_PPT_OUTPUT_DIR 指定默认输出目录;ppt_create 的 outputDir/theme/lang 参数优先级最高。
输出目录按每次工具调用的 exec.agent.session.header.cwd 解析:不指定目录时写入当前会话工作目录,相对目录(包括插件配置)相对此目录解析,绝对目录保持原意。直接调用工具而未提供会话时,回退到进程工作目录;并行会话不会修改进程 cwd。工具在加载引擎前和加载完成后检查 exec.signal,取消的调用不会继续生成文件;生成和写入阶段为同步操作,开始后会完成本次三件套。
卸载
dsh plugin --profile web remove dsh-ppt卸载后重启 Web 服务。如需彻底清理,可再手动删除自己 profile cordis.patch.yml 中的对应插件行。
中英双语
lang参数:zh(默认)/en/bilingual,控制播放器界面、页码与结束页默认文案。- 内容语言由你撰写:双语 deck 推荐「中文标题 + 英文副标题」,或同一大纲分别生成中英两份。
- 插件文档提供中英两版(README.md / README.en.md);CLI 与技能的报错提示为中文。
工程质量
- 纯 Node,零运行时依赖:HTML 模板、OOXML、zip 全部手写,只用
node:fs/node:path/node:zlib。 - 技能与工具共用一个引擎(
skills/dsh-ppt/scripts/deck-core.mjs),不会出现「DSH 一个效果、裸技能另一个效果」。 - 单元测试覆盖注册契约、JSON Schema、主题解析、Markdown 解析、三件套落盘、PPTX 部件完整性、CLI。
- 无
eval/child_process/ 密钥;产物只写用户指定的本地目录。
开发
pnpm install
pnpm run build # tsc → lib/
pnpm test # 构建 + node --test(注册/配置/引擎/CLI)
pnpm run smoke:cli # 裸 CLI 冒烟,生成 .smoke-deck已知限制
- PPTX 采用空白版式 + 文本框实现:PowerPoint / WPS 中可正常编辑文字,但暂不生成智能母版占位符。
- 一句话输入自动生成三页最小结构;更丰富的内容需要先扩写成 Markdown 大纲再调用
ppt_create。 bilingual只双语化播放器界面,不自动翻译内容。- 暂不支持图表与图片;演讲者备注及 HTML/PPTX 动效已经支持。
协议
MIT。社区插件,与 DeepSeek 官方无关;@deepseek-ai/* 为官方保留命名空间。
相关项目
- dsh-hyperframes — HTML 视频创作技能(本插件视觉风格来源)
- dsh-remotion — React 编程式视频技能
- dsh-email — 邮件六件套
