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(+)
1.9 KiB
1.9 KiB
1. 添加命令行参数
- 1.1 在
parse_args函数中添加--template-dir参数定义 - 1.2 设置参数类型为
str,默认值为None - 1.3 添加清晰的帮助信息,说明参数用途和路径格式
2. 修改 Template 类
- 2.1 修改
Template.__init__方法签名,将templates_dir='templates'改为templates_dir=None - 2.2 添加 templates_dir 为 None 的检查,抛出清晰的错误信息
- 2.3 添加模板名称验证,检查是否包含
/或\路径分隔符 - 2.4 移除
if not template_path.is_absolute() and not template_path.exists()的逻辑 - 2.5 直接使用
Path(templates_dir) / f"{template_file}.yaml"构建模板路径 - 2.6 改进模板文件不存在时的错误信息,包含查找位置和期望路径
3. 修改 Presentation 类
- 3.1 修改
Presentation.__init__方法签名,将templates_dir='templates'改为templates_dir=None - 3.2 确保 templates_dir 参数正确传递给 Template 类
4. 修改 main 函数
- 4.1 从
args.template_dir获取参数值 - 4.2 将
templates_dir=args.template_dir传递给 Presentation 构造函数
5. 错误信息优化
- 5.1 实现"未指定模板目录"错误信息,包含使用建议
- 5.2 实现"模板名称包含路径分隔符"错误信息,包含正确格式示例
- 5.3 实现"模板文件不存在"错误信息,包含查找位置、期望路径和解决建议
6. 测试验证
- 6.1 测试不使用模板的纯自定义幻灯片(不指定 --template-dir)
- 6.2 测试使用模板但未指定 --template-dir 的错误提示
- 6.3 测试使用绝对路径指定 template-dir
- 6.4 测试使用相对路径指定 template-dir
- 6.5 测试模板名称包含路径分隔符的错误提示
- 6.6 测试模板文件不存在的错误提示
- 6.7 在 Mac 和 Windows 上验证路径处理的跨平台兼容性