| English | Chinese |
PPT Master 是一个由个人维护的开源项目,按优先级而非固定时间表推进。这份路线图用来对齐预期:项目往哪个方向走、当下在做什么、哪些事等真实需求出现再做、哪些明确不做。优先级会随用户反馈和真实使用信号调整——不承诺交付时间窗口。
项目的主轴是原生深度:逐版本创作或保留更多 PowerPoint 自身的对象模型、行为与可复用结构——持续向 PowerPoint 本身靠拢。完整论述见项目定位章程;PowerPoint ↔ SVG 映射指南逐特性诚实记录当前边界。
这条主轴今天体现为三条显式产物路线:Generate PPTX 通过受约束的 SVG → DrawingML 创作全新设计的页面;Create Template 产出可复用的 Brand / Style / Layout / Deck 模板工作区;Edit Native PPTX 把既有 deck 导入保留来源的 round-trip 工作区,只编辑计划中的页面或叠加内容。
一份演示文稿由四层构成:页面上有什么、如何组织、如何行动、文档自身如何结构化。下面的表把每一层与 PPT Master 今天的实现对应起来。
这是地图,不是待办清单。「有意边界」与「有意的不对称」是已定形态而非未完成的格子——那里的空白是决定,不是欠账。「暂不考虑」的行会在该行内写明为什么现在不做。只有「信号驱动」的行偏开放,其理由留在下面的未来方向一节,不在此重复。真正被论证过的立场放在明确不做;这张地图只描述,不做裁决。
| 状态 | 含义 |
|---|---|
| 系统化 | 有专属创作契约;适用且客观可判定的部分配有校验把关,持续打磨中 |
| 已覆盖 | 今天可用,但没有专门的规范体系 |
| 有意边界 | 有意停在这里,理由已记录在案 |
| 有意的不对称 | 只支持单侧——通常是读取或保留来源 deck,而不创作 |
| 信号驱动 | 真实需求出现时值得做,不构成承诺 |
| 暂不考虑 | 当前不在考虑范围,理由写在该行内 |
| 对象 | 状态 | 说明 |
|---|---|---|
| 文字 | 系统化 | 全 deck 字号角色锚点、逐处受限微调、层级与段落规则、原生可编辑文本 |
| 原生 WordArt 与文字变形 | 暂不考虑 | 艺术字首选 AI 生成的装饰文字图片,普通可编辑文字负责兜底。原生 WordArt、文字变形与路径文字会额外引入一套创作和兼容性表面,却不能改善这条主路径,因此不生成 |
| 矢量形状 | 系统化 | primitive / Office preset 原子 → 独立组合 → 仅在单一轮廓需要时使用 Boolean → 必要 freeform 构造阶梯,附原生转换规范 |
| 线条 / 连接符 | 有意的不对称 | 原生 p:cxnSp 导出已实现,端点绑定在来源 deck 的 preserve/mirror 往返路径上会被还原。新创作的连接符保持不连接。要绑定就得先判断哪些线是真实的边、哪些是装饰——这是意图判断,任何几何阈值都定不下来;而无论把这个判断放在导出期还是创作期,做判断的都是 AI,往上游挪并不会更可靠。结果只会是同一张图里有的箭头跟着节点走、有的不走 |
| 图标 | 系统化 | 内置 SVG 图标库 + 逐项目同步;项目图标属于已准备材料。插图式语义提示仍是 images/ 下用于普通图片构图的生成切片,不进入图标库 |
| Logo | 有意边界 | Logo 永远来自既有素材,不在这里设计:brand 工作区把官方提供的文件安装为已准备资产——内置品牌预设附带官方标识及记录在案的使用规则——真实公司 / 产品标识另有 simple-icons 图标库覆盖 |
| 图片 | 系统化 | 获取、生成、处理、裁切、布局、组合、嵌入与来源标注 |
| 图表 | 系统化 | 有专属创作 reference;默认 SVG,原生 Chart 替换为显式 opt-in |
| 表格 | 系统化 | 有专属创作 reference;六种可复用的单元格网格参考,仍可自定义网格;原生 Table 替换走同一 opt-in |
| 关系图 | 系统化 | 六个关系原子——order、link、parent、membership、contrast、overlap |
| 公式 | 系统化 | 独立块级公式与同段行内公式可把 Microsoft 365 LaTeX / mhchem 文档中所有明确点名的输入编译为可编辑 OMML,并遵循文档规定的原生归一化,档位外输入直接失败。PPTX 导入可把通过校验的 PPT Master 自有 OMML 恢复为带可见 SVG 预览的规范公式 marker;任意第三方 OMML 与原始 LaTeX 写法恢复仍不在合同内。不生成图片兜底。包目标仍为 PowerPoint 2010+;可执行档位锁定到所述 Microsoft 文档版本,仓库验证覆盖编译器、OMML 与包结构,不等同于完整的 Microsoft 365 UI 认证。非 PowerPoint 客户端仍不在合同内 |
| 旁白与动画音效 | 系统化 | 逐页旁白音频,以及取自内置 CC0 音效库的原生转场与对象音效 |
| 任意视频与背景音乐 | 暂不考虑 | 属于一次性、内容特定的插入动作,在 PowerPoint 里手动放进去更快,AI 也无法替你挑文件。背景音乐还会牵出旁白混音决策,那在范围之外。来源 deck 中已有的媒体在 Fill 与 Enhance 路线中原样保留 |
| SmartArt | 有意的不对称 | 读取来源 diagram part 的内容与结构;生成 deck 用普通形状管线把这些内容重画出来。从不编辑 DiagramML,也不承诺原生 SmartArt 再生 |
| 3D 模型、OLE 对象 | 暂不考虑 | 两者都要求打开文件的机器装有宿主程序或较新版 Office,否则退化成一张静态预览图——正是本项目有意规避的跨渲染器问题。手动插入只要几秒。来源 deck 中已有的对象原样保留 |
| 墨迹与摄像头对象(Cameo) | 暂不考虑 | 手绘批注与实时摄像头对象属于演示现场的表面,不是生成的设计内容,且都依赖较新版 Office。来源 deck 中已有的此类 part 经源保留路线作为未改动的包结构透传 |
插图有意不列进这张表。它是可组合结果——一张图片、透明切片、一段 SVG,或一组形状——而不是第七种载体;它可以与页面上其他合适载体共同构图,把它与「图片」并列反而会重新引入这套分层正要消除的维度混淆。
| 关注点 | 状态 | 说明 |
|---|---|---|
| 背景 | 系统化 | 纯色与渐变页面背景导出为 PowerPoint 原生底色;图片背景属信号驱动 |
| 层级与分组 | 系统化 | 显式 z-order 与分组契约,含 registered base / subject 图层对 |
| 插图构成 | 系统化 | 按页面规划为统一的元素家族;生图能力可用时,可在色键图纸中批量生成兼容素材、严格透明切片,再作为固定标题 / 四角装饰复用,或重组为主体锚点、辅助形象与点缀,并与文字、形状、照片、艺术字共同构图 |
| 网格、对齐、留白 | 系统化 | 共享构图合同,加由每种视觉风格各自承载的构图几何词汇 |
| 配色 | 系统化 | 声明的 HEX 是具名语义角色的真值来源;可复用角色锚点跨页保持稳定,仍可使用情境派生色与稀疏页内点缀 |
| 字体 | 系统化 | 每个结构角色一个跨页字号锚点,单次出现可在 ±2px 内受限调整;稀疏非结构 Hero/Display 另有例外 |
| 视觉效果 | 系统化 | 有专属 effects reference;一个已登记的外阴影或发光可在受支持的基础对象与 compact authored-preset 形状上编译为一个可编辑原生效果 |
| 阅读路径 | 系统化 | 每页计划声明一个 primary 重点,锚定入口、推进、层级与终点;visual review 按该声明复核最突出元素与锚点位置 |
| 关注点 | 状态 | 说明 |
|---|---|---|
| 页面转场 | 系统化 | 含来自内置 CC0 音效库的按需转场音;PPTX 回导会把当前注册表内的精确转场重建到规范 sidecar |
| 对象动画 | 系统化 | 默认关闭、opt-in;逐对象配置为显式声明,PPTX 回导会把当前注册表内具有精确时长的有限子集重建到规范 sidecar |
| 自动翻页 | 已覆盖 | 由旁白起始留白、音频时长与页尾补白推导 |
| 音视频播放 | 已覆盖 | 旁白音频与动画音效原生播放;来源 deck 中已有的媒体保留其播放设置 |
| 超链接 | 系统化 | 整体对象与行内文字通过标准 SVG <a href> 创作,导出为原生外链或 deck 内跳转关系,并在受支持的 PPTX 回导中重建 |
| 动作与导航 | 系统化 | 导航通过把目标包进超链接锚点显式创作,含 deck 内跳到指定页。actionButton* 预设只贡献视觉几何——光有外观绝不隐含动作。鼠标悬停触发、自定义放映、宏或程序执行、以及裸 ppaction:// 注入都在契约之外 |
| Zoom(摘要 / 节 / 幻灯片缩放) | 暂不考虑 | 依赖 Office 版本的导航对象,在其他渲染器退化为一张静态图片——正是本项目有意规避的跨渲染器退化。deck 内跳转已由原生超链接的页面目标覆盖 |
| 关注点 | 状态 | 说明 |
|---|---|---|
| 画布尺寸 | 系统化 | 画布契约选定演示文稿格式;SVG viewBox 是页面几何的唯一真值,配 fail-closed 校验,且同一 deck 的所有页面必须使用同一格式 |
| Theme | 系统化 | 有锁的 Default 导出根据配色与字体合同逐 deck 派生 clrScheme、major/minor 字体与 Master 标题/正文默认字号。Flat Quick 保留转换器默认 Theme 脚手架;structured Quick 在工作区提供时保留逐 Master 源 Theme,并从语义 slot carrier 推导 Master 标题/正文字号默认值;SVG 派生的页面颜色与字体仍按直接值写入 |
| 字体嵌入 | 有意边界 | 从不在包内嵌入字体;品牌 / 网络字体只有确认目标系统可用后才领衔,否则导出安全字体族,并把原意向字体记录在 Design Spec 中 |
| 幻灯片节 | 有意的不对称 | Edit Native PPTX 在 identity roster 不改 presentation 结构时保留既有节元数据;使用 page_plan.json 重建页面清单时会丢弃节。生成或重建页面列表的路线不创作 PowerPoint 原生节,因为页面角色与可选的 Design Spec Part 并不构成所有路线都具备的必需章节合同。节只改变缩略图栏的组织方式,从不改变任何页面外观;长 deck 需要分组时,在 PowerPoint 里手动分节约一分钟,且只做一次 |
| Master / Layout | 系统化 | 结构化路线输出真实的 p:sldMaster / p:sldLayout part |
| Placeholder | 系统化 | 模板工作区契约,strict/adaptive 导出行为逐 deck 推导 |
| 日期、页脚与页码字段 | 有意边界 | 结构化模板路线按 placeholder 契约创作真实的日期 / 页脚 / 页码 placeholder。自由设计路线有意让画出的页码与页脚保持普通文本:页码数字经常本身就是设计元素而非标准字段,区分两者是意图判断;真需要标准页码域时在 PowerPoint 里手动插入只要几秒,且只做一次 |
| 备注 | 系统化 | 导出时带真实的 notes master |
| 旁白 | 系统化 | 逐页音频,带 provider 来源标注 |
| 字幕 | 系统化 | 受支持 provider 的逐词时间轴重组为统一的紧凑 SRT |
| 文档元数据 | 已覆盖 | 在导出时设定,而非交给打包库默认生成 |
| 无障碍信息(Alt Text、阅读顺序) | 暂不考虑 | AI 生成的图片带 alt_text 字段,网络抓取的图片会记录页面上常为空的 alt 属性,但形状、图表、关系图与用户自带图片完全没有描述——完整覆盖意味着为每个非文字对象新增创作描述,而不是接通既有数据。阅读顺序在 PowerPoint 里不是独立属性:它就是形状顺序,承载页面的视觉层叠,无法脱离它单独设置 |
| 宏与 Office 扩展 XML | 有意的不对称 | 从不创作——生成路线不合成 VBA;既有宏或扩展 part 只在支持宏的源保留工作流保持所属包 part 未改动时得以保留 |
| 评论、修订、协作状态 | 暂不考虑 | 属于 Office 协作面,在创作型产品之外 |
明确在做或下一步要做,不承诺时间窗口。
已评估为「真实需求出现时值得做」的候选项,列出来是为了公开意图,均不构成承诺。
一个月一行,细节见 Release 发布说明与 commit log。
| 时间 | 主题 |
|---|---|
| 2026-03 | 原生 PPTX 路线成形 — SVG → DrawingML 链路可用;图表 / 版式模板索引上线 |
| 2026-04 | 管线规模化 — 仅凭主题生成、70 个图表模板 + 三套图标库、spec_lock 跨页一致性契约、逐元素动画与旁白 / 视频导出 |
| 2026-05 | 可视化编辑 + AI 图片体系化 — Live Preview 确定性原位编辑(基于 @WodenJay 的 PR #85)、从 PPTX 创建模板工作区、rendering × palette × type 图片体系、旧版栅格 LaTeX 渲染器 |
| 2026-06 | mode 与 visual-style 双 catalog + intake 扩展 — 5 种叙事 mode × 18 种视觉风格(+ custom)、内容忠实的美化 profile、多 deck 合并 intake、可组合插画切片管线、网络图片质量闸门、源转换保真提升(图注识别基于 @suay1113 的 PR #191,超链接保留提炼自 @ZhaoZuohong) |
| 2026-07 | 定位章程 + 原生母版 / 版式 + token 效率(v4.0.0)— 三段式分步确认 UI、真 p:sldMaster / p:sldLayout 导出、--native-charts-and-tables opt-in、动效导出加固、图表模板库压缩 |
| 2026-08 | 模板库 + 页面图重建 + 原生公式与链接 + AI 图像成为构图系统(v4.5.0、v4.6.0、v4.7.0、v4.8.0)— brand / style / layout 工作区库、可视化按信息模型拆分且结构改为组合语法、Codex 支持的 image-to-pptx profile、带原生动画音效的视频交付、三条可编辑整体设计方向、覆盖 Microsoft 365 文档化 profile 的可编辑 OMML 公式、原生超链接创作、可跨页复用的 AI 插画元素族与装饰艺术字、按任务决定来源并隔离审阅缩略图的配图路径、转场与对象动画的反向导入,以及四层能力覆盖地图 |
下面这些方向被多次提过,已经评估并决定不做。列出来不是否定需求价值,而是说明它们与本项目产品方向不匹配;如果你刚好需要这些能力,建议看其他工具或 fork 本项目走自己的路。
Generate PPTX 路线围绕完全可控的新形状、文字与版式创作。结构完整的 PPTX 可以通过两种显式方式为经过确认的可复用模板包提供依据:standard / fidelity 读取完整来源证据,创作新的完整 Slide SVG 原型和 Master/Layout 系统;mirror 只物化来源 Slide 及其可达的 Layout/Master 链。两者都不修改来源 PPTX,也不补造缺失的设计意图。但「打开任意 PPTX 后不经规范化就盲填所有占位框」仍是另一种产品形态。
基础诉求其实很简单:如果只是「固定位置替换 Excel 数据到 PPT 模板」,直接让 AI 写一段 python-pptx 脚本即可,几行代码搞定,不需要本项目这套管线。
已支持边界:Edit Native PPTX(
edit-native-pptx)把既有 deck 导入 round-trip 工作区,逐字节引用未改页面,只编辑计划中的页面或叠加内容;Create Template(create-template)根据自然语言请求和来源证据,在内部推导重新创作或 mirror 物化实现;Strategist 再根据真实模板和当前内容推导 strict/adaptive 导出行为。仍不做未经审查、没有契约的任意第三方 placeholder 全自动替换。
跨四渲染器(PowerPoint / Keynote / LibreOffice / WPS)的位置保真是项目主轴。把默认路线改成 PowerPoint 原生图表会让「像素级一致性」破功——同一个 PPTX 在不同渲染器里图表会显示不同布局。图表默认用 SVG 是 by design,不是能力缺失。
窄例外是 data-pptx-replace-with marker:Design Spec §IX Native-ready 映射中以 <object-key>=yes 点名的受支持独立数据图表与纯文本网格表格可以携带 PowerPoint 原生 Chart/Table 替换 payload;no 与零星微型图形保持普通 shape。§VII 只记录真正选中的可复用参考。导出加 --native-charts-and-tables 才激活已准备的 marker——供主动用跨渲染器保真换取带数据源对象及图表/表格专属编辑模型的用户使用;激活后的对象会保留 deck 的 chart-area / plot / 轴线 / 网格线 / 标签颜色与原生表格格式,不再塌回 PowerPoint 默认主题(见 v4.0.0 发布说明)。默认导出路径与可编辑的 SVG 派生形状系统不变。
对应 Issue:#111
pip + requirements.txt 是唯一官方安装路径,因为它在所有 Python 环境下都可用、不需要额外学习成本。uv 是好工具,但「让 uv 成为默认」会抬高新用户的入门门槛。如果你个人偏好 uv,完全可以在 fork 里用,不影响主线。
对应 Issue:#97
成本 / 速度 / 质量三角下,本项目选择质量优先。20 分钟生成一个高质量 PPTX 是当前的合理点。
会做:通过 prompt 精简 / 缓存命中率提升带来的间接改善。
显式 quick-generate 是用户主动选择的工作流短路:它跳过 Strategist 和确认,随后创作 SVG,在 7 页及以上 roster 上运行共用的 early gate,再运行一次无锁最终质量门并导出最终 PPTX。由于整个规划阶段不再发生——Strategist 系 reference 的加载、design_spec.md / spec_lock.md 的写入、分步确认往返——这部分 token 开销随之消失,而逐页 SVG 创作的开销不变。它保留同一套页面级视觉与资源创作能力,以及共享的 SVG / 资源阻塞标准;它不运行 Spec Lock 对齐检查,也不从 lock 派生当前项目 Theme。Flat Quick 保留转换器默认 Theme 脚手架;structured Quick 在工作区提供时保留逐 Master 源 Theme,并从语义 slot carrier 推导 Master 标题/正文字号默认值。由于没有已确认的设计契约或可恢复的决策历史,它不承诺与 Default 作出相同设计,也不承诺具体耗时。
默认 Generate 流程仍坚持质量优先。
产品形态明确为运行在支持 Agent 的 AI 工具中的对话式工作流 / skill(Claude Code、Codex、Cursor、VS Code agents 等)。
不会做:独立 CLI(ppm 之类)、SaaS Web 服务、Electron 桌面壳。所有「让它脱离 chat 独立运行」的提案都会被拒。chat 是交互核心,不是包装层。
提需求前先扫一眼上面的明确不做;如果你的需求落在那一节,多半不会被采纳,但欢迎讨论是否还有别的路径解决你的真实问题。