OMSociety/dsh-ppt-maker ↗★ 10

dsh-ppt-maker

本地创建、编辑和导出PPT的工具链 适合需要通过自然语言在本地离线生成和编辑PPTX文件的用户。

套件
dsh-ppt-maker
相容性
待驗證
Harness 依賴範圍
>=0.2.0-rc.2 <0.3.0-0
版本
1.0.0
授權
MIT
最近更新
2026年10月14日

同名套件的其他儲存庫

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:OMSociety/dsh-ppt-maker

dsh-ppt-maker logo

DSH PPT Maker(PPT 创客)

DeepSeek Harness 插件 —— 内含 ppt-maker 技能与八个 ppt_ 工具:创建 / 编辑 / 质检 / 导出 PPT,本地纯 TS 引擎直出最终 .pptx*

[![Version](https://img.shields.io/npm/v/dsh-ppt-maker?color=4f6ef7&label=version)](https://www.npmjs.com/package/dsh-ppt-maker)
[![DSH](https://img.shields.io/badge/DSH-%3E%3D0.2.0--rc.2%20%3C0.3-4f6ef7)](https://github.com/deepseek-ai/dsh)
[![License](https://img.shields.io/github/license/OMSociety/dsh-ppt-maker?color=4f6ef7)](https://github.com/OMSociety/dsh-ppt-maker/blob/93452472f0468fc6b762b1598b955d7929dcd298/LICENSE)
[![Stars](https://img.shields.io/github/stars/OMSociety/dsh-ppt-maker?color=4f6ef7)](https://github.com/OMSociety/dsh-ppt-maker/stargazers)
[![Issues](https://img.shields.io/github/issues/OMSociety/dsh-ppt-maker?color=4f6ef7)](https://github.com/OMSociety/dsh-ppt-maker/issues)

目录:• 核心特性 • 工具清单 • 安装方式 • 质检体系 • 设计系统 • 常见问题 • 更新日志

免责声明:本插件为非官方项目,与 Moonshot AI 无关。PPTD 格式为自主维护的 v3 契约(不跟踪上游)。

核心特性

特性说明
工具层直出11 个 ppt_* 工具(raw JSON-Schema 注册):创建/编辑/撤销/重做/渲染/质检/导出/导入/打开/外科手术,引擎 @office-kit/pptx@0.24.0 本地纯 TS 构建最终 .pptx,不依赖 Python 主链
双向性读取并改写既有 .pptx:ppt_import 全量逆向进 PPTD 工程(图表/SmartArt/OLE 自动落灰底占位),ppt_patch 外科手术(改字/换图/调页序)不走 PPTD 往返,库级 L1 passthrough 保住未建模部件
PPTD v3自主契约的 YAML DSL(deck.pptd + pages/*.page),单页自包含、可视即所得;双方言(generate 生成 / reverse 逆向超集)
右侧栏工作台自研三栏编辑器(缩略图 + 画布 + 属性面板),所见即所得:双击文字就地改、拖拽调页序、图片一键替换、撤销/重做、409 冲突提示与「外部已修改」banner
质检分层规则层(文字溢出/出界/重叠/对比度/结构/缺字体)阻断式,blocker 拦导出;AI 层按需(ppt_check ai:true)把最终渲染页 PNG 送多模态模型看配色/层级/平衡,只出建议不阻断
字体嵌入导出自动嵌入实际用到的字体(EOT 封装 fntdata + embeddedFontLst),未装字体的机器渲染不回落;子集/整字体/关闭三档(export.fontEmbed),逐字体 fsType 许可闸,ppt_check 预检许可与替代建议
转场与动画页面级淡入淡出转场(export.transition)与元素入场动画(export.animations,95 种 preset 词表),本地链路原生写出
修订与快照manifest.json 单一写者 + append-only 快照(游标模型,undo/redo 天然成立)+ baseRevision 乐观锁(409)
设计系统内置学术 / 咨询 / 金融 / 促销 / 工作五族预设主题,选题后整套版式配色层级一致
本地渲染预览面板缩略图与「精确预览」都用 @deepseek-ai/libreoffice-kit 光栅化最终 pptx;每页(page, revision)磁盘缓存

工具清单

工具干什么
ppt_create新建 PPTD 工程(dir/title/size/designSystem/theme)
ppt_themes列设计系统与主题
ppt_edit原子编辑:ops 数组批量(add_page / add_element / update_element / …),带 baseRevision 乐观锁
ppt_undo / ppt_redo撤销/重做(游标移动,合并窗内连续编辑算一步)
ppt_render渲染每页 PNG 预览(最终 pptx 光栅化,96dpi 默认)
ppt_check规则质检(默认)+ AI 视觉质检(ai:true,路由不支持图像时降级为 PNG 路径清单)
ppt_export导出 .pptx(规则 blocker 拦截,skipCheck:true 绕过;摘要落账 manifest.exportReport)
ppt_import.pptx → PPTD v3 全量逆向(dropped/degraded 两级报告 + 占位形状回插)
ppt_open把右侧栏工作台打开到指定工程(per-session openRequest,TTL 60s)
ppt_patch对 .pptx 外科手术:set_text / replace_image / move_page
(不走 PPTD 往返,库 L1 passthrough 保住 chart/SmartArt/OLE)

工作台

右侧栏「PPT 创客」是三栏编辑器:缩略图条 + 画布(GET /thumb 渲 PNG)+ 属性面板。

  • 编辑动作:双击文字就地改 / 拖拽调页序 / 复制删除新增页 / 替换图片 / 「精确预览」整页重渲。
  • 冲突保护:所有写入都带 baseRevision,模型在另一个会话里改了同一工程会回 409——面板只亮冲突条,不覆盖人的手改;「外部已修改」提示同理。
  • 轮询:每 3s 拉 /ppt-maker/api/state 看 manifest.revision;模型 ppt_open / ppt_import 完成后面板自动聚焦到对应工程。

安装方式

  1. 安装插件(DSH 用户级,宿主自动注册 skills/ppt-maker 技能根):

    # 先停掉正在运行的 DSH(运行中的服务会锁住依赖,装完再起)
    dsh plugin --profile 
    

add "dsh-ppt-maker"


> **桌面版用户**:桌面的 `desktop` profile 由应用独占管理,CLI 无法代管安装;请在桌面应用内安装此插件。
2. **重启 DSH**:技能目录自动发现;对话里直接说「帮我做一份 PPT」即触发。

> **依赖**:工具链全 TS,主链无 Python。`ppt_render` 用的 `@deepseek-ai/libreoffice-kit@0.1.2` 是硬依赖(约 183MB/平台,随包安装)。Python 脚本(`skills/ppt-maker/scripts/`)仅作逃生舱,见 SKILL.md「六、Python 逃生舱」。

> **提示**:桌面增强轨道(kimi.com 网页编辑器导出,`export_pptx.py` / `export_images.py`)**已弃用**——字体嵌入与淡入淡出转场已由本地 TS 导出链路原生提供,全程离线。这两个脚本将于下个次版本删除,仍在使用的用户直接升级即可获得等价产物。

## 质检体系

**规则层**(阻断式,导出前默认跑):文字溢出(`@office-kit/pptx-preview` 的 `auditTextLayout`)、出界、重叠、对比度(WCAG 相对亮度比 ≥3)、结构健全(`validatePresentation`)、缺字体(libreoffice-kit 的 `missingFonts` 诊断)。blocker 不修掉 `ppt_export` 不给出文件。

**AI 层**(按需,`ppt_check ai:true`):把 libreoffice-kit 渲染的最终成品页 PNG 经 `ctx.attachments.saveImages` 入库后送当前路由的多模态模型(`ctx.llm.stream`),审配色/层级/平衡/图版搭配。只出建议不阻断;路由不支持图像输入(`resolveModelInfo().inputModalities` 不含 `image`)时降级为返回 PNG 路径清单 + 版式指标摘要,由主模型自行 `read_image` 复核。

## 设计系统

五族预设(`skills/ppt-maker/reference/design_system///design.md`):`academic` 学术 · `consulting` 咨询 · `finance` 金融 · `promotion` 促销 · `work` 工作。用 `ppt_themes` 列当前可用主题。

## 常见问题

- **导出被拦**:规则质检有 blocker(文字溢出/出界/结构坏)→ 按 `ppt_check` 返回的 `issues` 逐条修,或 `skipCheck:true` 强行导出(不推荐)。
- **AI 质检降级**:返回 `ai.performed:false` + PNG 路径清单时,说明当前路由模型不支持图像输入——主模型自行 `read_image` 那些 PNG 复核即可。
- **逆向现有 pptx**:`ppt_import` 全量逆向进 PPTD 工程;轻改(改字/换图/调页序)走 `ppt_patch` 不经 PPTD 往返,保留 SmartArt/OLE/图表等未建模部件。

## 更新日志

参见 [CHANGELOG.md](https://github.com/OMSociety/dsh-ppt-maker/blob/93452472f0468fc6b762b1598b955d7929dcd298/CHANGELOG.md)。

## 致谢

- 基于 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 插件/技能体系。
- 引擎 [@office-kit/pptx](https://www.npmjs.com/package/@office-kit/pptx)(0.24.0 pin)与预览 [@office-kit/pptx-preview](https://www.npmjs.com/package/@office-kit/pptx-preview);渲染 [@deepseek-ai/libreoffice-kit](https://www.npmjs.com/package/@deepseek-ai/libreoffice-kit)(MPL-2.0,仅调用其 API/CLI,不链改源码)。

## 许可证与作者

[MIT](https://github.com/OMSociety/dsh-ppt-maker/blob/93452472f0468fc6b762b1598b955d7929dcd298/LICENSE)。

[OMSociety](https://github.com/OMSociety)