Back to home@HenryPhoebe

dsh-plugin-easyppt

easyppt是一个面向 DeepSeek Harness (DSH) 的演示文稿生成 dsh-plugin(npm 包 + Cordis bundle + 内置技能)。用户输入大纲(Markdown / JSON / 自然语言)与插图,即可基于 DSH 原生 Univer 工具链生成PPTX,HTML,JSON

Stars
0
Language
JavaScript
Created
Aug 27, 2026
Updated
Aug 27, 2026
GitHub repo

Introduction

easyppt — 自动化 PPT 生成(DSH dsh-plugin)

English: README.en.md · 上传 GitHub 教程:docs/UPLOAD_TO_GITHUB.md

easyppt 是一个面向 DeepSeek Harness (DSH) 的演示文稿生成 dsh-plugin(npm 包 + Cordis bundle + 内置技能)。用户输入大纲(Markdown / JSON / 自然语言)与插图,即可基于 DSH 原生 Univer 工具链生成:

  • <name>.pptx —— 标准 16:9,可在 PowerPoint / Keynote / WPS 中打开并自由编辑;
  • build/<name>.html —— 自包含的网页放映版,用于浏览器离线预览;
  • build/<name>.manifest.json —— 结构化清单,记录主题、配色、字体与每页内容,便于版本管理。

设计说明:渲染不在此插件内重写。easyppt 负责输入校验、大纲归一、主题解析与构建清单, 实际幻灯片渲染由模型按 SKILL.md 驱动 DSH 原生 univer_* 工具完成(生成、lint、 截图、导出可编辑 .pptx)。这复用 DSH 的可编辑出库管线,避免重复实现排版引擎。


目录结构

easyppt/
├── package.json                # dsh-plugin 包元数据(dsh.bundle.patch / main / peerDeps)
├── cordis.patch.yml            # profile bundle 补丁:插入 easyppt 插件行
├── index.js                    # Cordis 插件入口:注册 ppt_create / ppt_themes / ppt_template_list / ppt_template_upload + easyppt 技能
├── lib/
│   ├── themes.json             # 10 套内置视觉主题(id / 场景 / 配色 / 字体 / 版式)
│   ├── themes.js               # 主题库:list / get / resolve
│   ├── outline.js              # 大纲解析:Markdown / JSON / 自然语言 -> 归一化 deck
│   └── template-parser.js      # 模板上传校验 + 注册表 + 从 Univer 快照推导样式
├── skills/easyppt/
│   ├── SKILL.md                # 生成工作流(主题规范、逐页 SVG、校验、导出)
│   └── themes.json             # 随技能分发的主题清单(资源目录)
├── preset/
│   ├── preset.yml              # 预设展示元数据
│   └── agent.cordis.yml        # PPT 模式预设(standard 基础 + 设计师 persona + 技能层)
├── docs/theme.schema.json      # themes.json 的 JSON Schema
└── README.md

安装(dsh-plugin 一键安装)

依赖:已安装 DeepSeek Harness(含 dsh-univer-office 提供的 univer_* 工具链)。 peer 依赖(@deepseek-ai/dsh-tools / @deepseek-ai/dsh-skill / @deepseek-ai/cordis)由 DSH 宿主自动解析,无需单独安装。

方式一:从 GitHub 安装(推荐)

dsh plugin --profile web add https://github.com/<你的用户名>/easyppt

方式二:本地路径安装(开发调试)

dsh plugin --profile web add ./easyppt        # 或 dsh plugin --profile web add C:\path\to\easyppt

dsh plugin 是一个 pnpm 转发器:安装后自动把声明了 dsh.bundle.patch 的依赖并入 dsh.profile.bundles 层,无需手改配置。重启 DSH 生效

安装后插件会:

  1. 注册 4 个模型可见工具:ppt_createppt_themesppt_template_listppt_template_upload
  2. 注册内置 easyppt 技能(主题库 + 生成工作流),任意会话可按需加载。

卸载:dsh plugin --profile web remove easyppt(或 dsh plugin --profile web rm easyppt)。

方式三(可选):EasyPPT 模式(Agent 预设会话)

想让 DSH Web 控制台出现独立的 EasyPPT 会话模式,把 preset/ 复制到用户预设目录:

$dest = "$env:USERPROFILE\.dsh\.agent-presets\easyppt"
New-Item -ItemType Directory -Force -Path $dest | Out-Null
Copy-Item -Recurse -Force "preset\*" $dest
Copy-Item -Recurse -Force "skills\easyppt" "$dest\skills\"
Copy-Item -Force "lib\themes.json" "$dest\skills\easyppt\themes.json"

重启后新建会话选择 EasyPPT 即进入“PPT 模式”,会话自动加载设计师 persona 与 easyppt 技能。

未装 bundle 前,ppt_* 工具也可在单个会话内通过 cordis_define + cordis_run 注册等价动态插件试用(见下文“快速试用工具”)。核心生成能力始终由技能 + 原生 univer_* 工具提供。


使用

命令行 / 一次性指令

让模型生成一份 PPT,一句话即可:

请用 easyppt 生成一份主题为‘data’的《AI 产品发布》PPT,并传入你的大纲与插图路径。

等价地,调用工具:

ppt_create {
  title: "AI 产品发布",
  content: "# AI 产品发布\n## 市场机会\n- 市场空间大\n- 增速快\n## 产品方案\n- 核心亮点一\n- 核心亮点二",
  theme: "data",
  lang: "zh"
}

Web 界面(PPT 模式)

  1. 新建会话,选择 EasyPPT 预设。
  2. 用自然语言给出:标题、大纲(可粘贴 Markdown / 上传 JSON)、插图(拖入工作区)。
  3. 可指定主题(id)或要求“把这份 .pptx 作为模板”。
  4. 模型按技能生成:建 .univer → 逐页 SVG → 校验 → 导出 .pptx + HTML + manifest。

常用命令

意图命令
查看所有可用主题ppt_themes(或 ppt_themes {format:"full"}
查看所有模板(内置+自定义)ppt_template_list
上传自定义模板ppt_template_upload {file:"templates/公司模板.pptx", name:"公司模板"}
生成并落盘构建清单ppt_create {title:"…", content:"…", theme:"business", lang:"zh"}
打开/编辑生成的源文件在 Web 工作区打开 <name>.univer,或直接编辑导出的 .pptx

内置主题(10 套)

id名称适用场景
data科技感深色科技、AI、大数据、产品发布、开发者大会
business商务理性经营分析、项目汇报、跨部门评审
executive高管汇报董事会、战略、投融资、高管述职
warm温暖人本HR、培训、团队文化、公益、用户报告
minimal极简留白设计、品牌、作品集、极简产品
education教育培训课程、教学、讲座、知识科普
finance金融报告银行、证券、基金、财报、投研
health医疗健康医疗、医院、健康产品、临床试验
startup创业路演融资路演、创业大赛、Demo Day
academic学术论文论文答辩、学术报告、研究工作汇报

每套主题在 lib/themes.json 中定义了完整的 colors(bg/panel/primary/secondary/accent/ text/muted/line…)、fonts(title/heading/body 的字族、字重、字号)与 layout (标题栏、页脚、圆角、最大要点数、推荐结构)。


模板管理

内置主题无需额外文件。自定义模板三步:

  1. ppt_template_upload(或直接把 .pptx 放进工作区)校验并入库;
  2. univer_import 将该 .pptx 导入草稿工作区,univer_inspect 读取其配色/字体;
  3. lib/template-parser.jsderiveStyleFromSnapshot(或自行归纳)得到样式, 写入 .easyppt/templates.json。之后即可用 ppt_create template:<id> 像内置主题一样选用。

上传限制:.pptx,位于会话工作区内,单个 ≤ 20 MiB。


快速试用工具(动态插件)

在当前会话(无需改动 profile)注册 index.js 的等价动态插件,使 ppt_* 工具立即可见:

  1. cordis_define 定义插件(host 返回一个 apply,内部用 harness.defineTool + harness.registerTool 注册 4 个工具)。
  2. cordis_run 激活。
  3. cordis_inspect_query(Host Tool.listTools)确认 4 个工具已出现。

动态插件随进程回收,不写入磁盘;用于试用与验证。持久化请走上面的 bundle 安装。


校验与质量

  • 每页 univer_inspect(结构)→ univer_lint(文字出界/溢出/重叠)→ univer_screenshot (渲染帧)三连校验后再导出。
  • 遵循主题 token,避免夸色/字体;maxBullets 约束每页要点数量,宁可少而精。
  • 仅使用工作区内的 PNG/JPG/GIF 插图,单张 ≤ 20 MiB,经 <image> 嵌入。

许可

MIT。Univer 集成由 dsh-univer-office 提供。 "# dsh-plugin-easyppt"