- Início
- Plugins
- Ferramentas e funções
- dsh-ppt-maker
dsh-ppt-maker
omsociety/dsh-ppt-maker
Bancada PPT: 11 ferramentas ppt_* criam, editam, fazem engenharia reversa, QA e exportam slides de um projeto PPTD em texto simples. Cinco famílias de sistemas de design, temas, animações, pôsteres e infográficos.
Instalar
dsh plugin --profile web add github:omsociety/dsh-ppt-makerREADME
中文 · English
PPT 创客 dsh-ppt-maker
创建 / 编辑 / 逆向 / 质检 / 导出 PPT 的 DeepSeek Harness 插件,本地纯 TS 引擎直出最终 .pptx。
模型用十一个 ppt_* 工具干活,你在右侧栏工作台里同看同改——双击文字就地编辑、拖拽调页序、导出后一键打开成品。
这是什么 • 核心特性 • 效果 • 安装方式 • 模型工具 • 工作台 • 开发 • 更新日志 • 支持与致谢 • 许可证与作者
这是什么
PPT 创客是一套长在 DeepSeek Harness 里的 PPT 工作链:模型通过十一个 ppt_* 工具创建、编辑、逆向、质检、导出演示文稿;人通过右侧栏工作台与模型接力——面板与模型读写同一份 PPTD 工程。
中间的格式是自主契约的 YAML DSL PPTD(deck.pptd + pages/*.page):单页自包含、可视即所得,双方言(generate 生成 / reverse 逆向超集),完整规格见 docs/pptd-spec.md。
核心特性
| 特性 | 说明 |
|---|---|
| 十一个模型工具 | raw JSON-Schema 注册:创建 / 编辑 / 撤销 / 重做 / 渲染 / 质检 / 导出 / 逆向 / 打开 / 外科手术。引擎 @office-kit/pptx@0.24.0 本地纯 TS 构建最终 .pptx,主链无 Python |
| 双向性 | ppt_import 把既有 .pptx 全量逆向进 PPTD 工程(图表 / SmartArt / OLE 落灰底占位并回插);ppt_patch 对 .pptx 外科手术(改字 / 换图 / 调页序),不走 PPTD 往返,库级 L1 passthrough 保住未建模部件 |
| PPTD 契约 | YAML DSL(deck.pptd + pages/*.page),单页自包含、可视即所得;generate / reverse 双方言,可手改也可机改 |
| 右侧栏工作台 | 自研三栏编辑器(缩略图 + 画布 + 属性面板):双击文字就地改、拖拽调页序、图片一键替换、撤销 / 重做、版本历史直渲快照并一键恢复、409 冲突保护与「外部已修改」提示 |
| 质检分层 | 规则层(文字溢出 / 出界 / 重叠 / 对比度 / 结构 / 缺字体)阻断导出;AI 层按需(ppt_check ai:true)把成品页 PNG 送多模态模型审配色与版式,只出建议不阻断;结果落账 manifest.qaReport,随 revision 可追溯 |
| 字体嵌入 | 导出自动嵌入实际用到的字体(EOT 封装 fntdata + embeddedFontLst),未装字体的机器渲染不回落;子集 / 整字体 / 关闭三档(export.fontEmbed),逐字体 fsType 许可闸 |
| 转场与动画 | 页面级转场(fade 默认 / none / auto 策展轮换)与 95 种元素动画 preset,本地链路原生写出 |
| 修订与快照 | manifest 单一写者 + append-only 快照(游标模型,undo/redo 天然成立)+ baseRevision 乐观锁(409) |
| 设计系统 | 学术 / 咨询 / 金融 / 促销 / 工作五族预设主题,选题后整套版式配色层级一致 |
| 本地渲染预览 | 面板画布与缩略图把 PPTD 页直接渲染成 DOM(矢量、秒出、与选择框同源同坐标系);导出与质检的 PNG 预览走 @deepseek-ai/libreoffice-kit 光栅化最终 pptx,每页按 (page, revision) 磁盘缓存 |
效果
![]() |
![]() |
| 工作台实机:左侧缩略图、中间画布、右侧属性面板;导出成功后页脚状态条给出「打开方式」菜单(系统关联应用 / 显示文件位置) | 还没有打开演示文稿时的空面板;模型 ppt_open / ppt_import 后面板自动聚焦到对应工程 |
安装方式
从 npm 安装
# 先停掉正在运行的 DSH(运行中的服务会锁住依赖,装完再起)
dsh plugin --profile <profile> add "dsh-ppt-maker"
提示:装好后刷新一下浏览器页面,从右侧栏打开「PPT 工作台」——只重启宿主不够,客户端产物是页面加载时取的。
**依赖:**主链全 TS、无 Python;
ppt_render与质检用的@deepseek-ai/libreoffice-kit@0.1.2是硬依赖(约 183MB/平台,随包安装)。skills/ppt-maker/scripts/下的 Python 脚本仅作逃生舱,见 SKILL.md「Python 逃生舱」。
装完怎么用
- 对话里说「帮我做一份 PPT」(或显式 invoke
ppt-maker技能)→ 十一个ppt_*工具进场 - 模型
ppt_create新建工程,或ppt_import把现有 .pptx 逆向进工程 → 右侧栏自动弹出工作台 - 面板里双击文字就地改、拖页序、点「导出 .pptx」→ 成品落在工程目录
export/(文件名带版本号) - 让模型
ppt_check质检、ppt_render逐页看 PNG;模型在别的会话改了同一工程,面板亮 409 冲突条,不覆盖你的手改 - 页脚状态条点「打开」→ 用系统关联应用打开成品,或选「显示文件位置」
模型工具
| 工具 | 作用 | 关键参数 |
|---|---|---|
ppt_create | 新建 PPTD 工程 | dir · title · size · designSystem · theme |
ppt_themes | 列设计系统与主题(五族预设) | designSystem(可省) |
ppt_edit | 原子编辑:ops 数组批量增删改页面与元素,baseRevision 乐观锁 | dir · ops · baseRevision |
ppt_undo / ppt_redo | 撤销 / 重做(游标移动,合并窗内连续编辑算一步) | dir · steps(1–20,默认 1) |
ppt_render | 渲染每页 PNG 预览(最终 pptx 光栅化) | dir · pages · dpi(默认 96) |
ppt_check | 规则质检(默认)+ AI 视觉质检(只出建议不阻断) | dir · pages · ai |
ppt_export | 导出 .pptx(规则 blocker 拦截,skipCheck 绕过) | dir · out · skipCheck |
ppt_import | .pptx → PPTD 全量逆向(dropped / degraded 两级报告 + 占位形状回插) | source · targetDir · mode(full / surgical)· open |
ppt_open | 让右侧栏工作台打开指定工程 | dir |
ppt_patch | 对 .pptx 外科手术:set_text / replace_image / move_page | source · ops · out |
模型的标准动作顺序是 ppt_create(或 ppt_import)→ ppt_edit 迭代 → ppt_check → ppt_export;技能 ppt-maker(随插件注册)写明了设计系统选型与编辑纪律,模型需要时会自己读。轻改既有 .pptx(改字 / 换图 / 调页序)走 ppt_patch,不经 PPTD 往返。
**提示:**导出被规则 blocker 拦住时,按
ppt_check返回的issues逐条修,或skipCheck:true强导(不推荐)。ppt_check ai:true返回ai.performed:false加 PNG 路径清单时,说明当前路由模型不支持图像输入,主模型自行read_image复核即可。
工作台
右侧栏「PPT 工作台」是三栏编辑器:缩略图条 + 画布 + 属性面板。
- 底图即 DOM:画布与缩略图把 PPTD 页 AST 直接渲染成 DOM(
client/components/PptdView.tsx),打开即出、无需等 libreoffice 冷启动;元素、选择框、就地编辑器同一坐标系,恒对齐。table / chart / icon / SmartArt 等暂不支持渲染的元素显示灰底占位。 - 左右栏可收缩:左栏页列表默认展开、可收起;右栏属性面板选中元素才展开。收起态只留边缘把手。
- 就地编辑:双击文字就地改 / 拖拽调页序 / 复制删除新增页 / 替换图片 / 「导出 .pptx」落到工程目录
export/下(文件名带版本号)。 - 版本历史:「历史」抽屉直渲任意快照的画布预览并一键恢复。
- 页脚状态条:「正在保存…」与操作反馈(导出落点、失败原因)常驻底栏,不挤压画布高度。
- 冲突保护:所有写入带
baseRevision;模型在另一个会话里改了同一工程会回 409——面板只亮冲突条,不覆盖人的手改;「外部已修改」提示同理。 - 轮询与聚焦:每 3s 拉一次状态看 manifest.revision;模型
ppt_open/ppt_import完成后面板自动聚焦到对应工程。
开发
npm install # 安装依赖
npm test # 全量回归(先设 12GB 堆并串行跑,见下)
npm run typecheck # src/ 与 client/ 两份 tsconfig
npm run build # 重出 lib/index.js 与 lib/client.js(改完 src/ 或 client/ 必跑,并提交产物)
npm run check:build # 确认 lib/ 与 git 一致
npm run check:mounts # 挂载声明核对
**提示:**全量测试需大堆串行跑(默认堆会 OOM):先
$env:NODE_OPTIONS='--max-old-space-size=12288',再npm test -- --no-file-parallelism。完整验收口径与禁止事项见AGENTS.md。
目录与「改东西去哪」:
src/index.ts 宿主入口:注册技能 + 懒展开 11 个工具 + webServer 前缀路由
src/core/ 引擎:pptd 契约 / officekit 构建 / 工程存储与快照 / 逆向 / 质检 / 字体嵌入
src/tools/ 11 个工具的 raw JSON-Schema 契约
client/ 右侧栏工作台源码(TSX → esbuild 打成 lib/client.js)
plugin/ 装载壳 + host 路由(纯 JS,经 deps.core 注入 core)
skills/ppt-maker/ ppt-maker 技能:设计系统参考与生成纪律(模型自己会读)
tests/ 宿主契约 / 工具 e2e / 逆向 / 字体 / bundle 守卫(语料 .pptx 不入库)
docs/ PPTD 规格 / 决策登记 / 兜底字体表
lib/ 构建产物(入库;dsh plugin add 只装不构建)
更新日志
参见 CHANGELOG.md。
支持与致谢
- 如果这个插件对你有帮助,欢迎点亮 Star;有问题和建议请提交 Issue 或 Pull Request,开发约定见
AGENTS.md。 - 基于 DeepSeek Harness 插件 / 技能体系。
- 引擎 @office-kit/pptx(0.24.0 pin)与预览 @office-kit/pptx-preview;光栅化 @deepseek-ai/libreoffice-kit(MPL-2.0,仅调用其 API / CLI,不链改源码)。
许可证与作者
Plugins relacionados
archify (deepseek-harness)
tt-a1i/archify
WeKnora (dsh-weknora)
tencent/weknora
weknora
tencent/weknora
BrowserSkill (dsh-plugin-browserskill)
tencent/browserskill

