Add core Python script (yaml2pptx.py) for converting YAML to PowerPoint: - Element rendering: text, image, shape, table, chart - Template system with placeholders - PPTX generation with python-pptx OpenSpec workflow setup: - 3 archived changes: browser-preview, template-dir-cli, yaml-to-pptx - 7 main specifications covering all core modules - Config and documentation structure 30 files changed, 4984 insertions(+)
2.2 KiB
2.2 KiB
Why
当前工作流程中,每次编辑 YAML 文件后,需要手动运行 yaml2pptx.py 生成 PPTX 文件,然后在 Keynote 或 PowerPoint 中打开查看效果。这个反馈循环较慢,需要频繁切换应用程序,降低了内容创作和调试的效率。添加浏览器实时预览功能可以让用户在编辑 YAML 时立即看到效果,大幅提升开发体验。
What Changes
- 在
yaml2pptx.py中添加--preview参数,启用浏览器预览模式 - 使用 Flask 提供 Web 服务,动态生成 HTML 预览
- 使用 Server-Sent Events (SSE) 实现浏览器自动刷新
- 使用 watchdog 监听 YAML 文件变化
- 复用现有的 YAML 解析和模板渲染逻辑
- 将 YAML 元素转换为 HTML/CSS 进行渲染
- 新增依赖:
flask、watchdog(添加到脚本的 Inline script metadata) - 保持向后兼容,不影响现有的 PPTX 生成功能
Capabilities
New Capabilities
browser-preview-server: 浏览器预览服务器,负责启动 Web 服务、文件监听、SSE 事件推送html-rendering: HTML 渲染系统,负责将 YAML 元素(文本、形状、表格、图片)转换为 HTML/CSS
Modified Capabilities
无。此变更不修改现有能力的需求,仅复用 yaml-parsing 和 template-system 的功能。
Impact
修改文件
yaml2pptx.py: 添加预览服务器功能(约 200 行新增代码)- 新增
--preview命令行参数 - 新增 Flask 路由和 SSE 事件流
- 新增 HTML 渲染函数
- 新增文件监听逻辑
- 新增
依赖变化
- 在
yaml2pptx.py的 Inline script metadata 中新增依赖:flask、watchdog - 使用 uv 自动管理依赖,无需手动安装
现有功能
- 完全向后兼容,不影响现有的 PPTX 生成功能
- 复用
Presentation类和 YAML 解析逻辑 - 不修改现有的模板系统和元素渲染逻辑
用户体验
- 生成 PPTX:
uv run yaml2pptx.py input.yaml(保持不变) - 浏览器预览:
uv run yaml2pptx.py input.yaml --preview(新增) - 预览模式下浏览器自动打开预览页面
- 编辑 YAML 文件后浏览器自动刷新
- 预览效果与最终 PPTX 可能存在细微差异(HTML/CSS vs PPTX 渲染)