1
0
Files
PPTX/openspec/changes/archive/2026-03-04-template-element-composition/tasks.md
lanyuanxiaoyao 5d60f3c2c2 feat: 实现模板元素混合模式功能
新增混合模式,允许幻灯片同时使用 template 和 elements,实现更灵活的布局组合。

核心变更:
- core/presentation.py: 修改 render_slide() 支持三种模式(纯模板/纯自定义/混合模式)
- 自定义元素可访问模板变量,实现主题色等值的统一控制
- 元素采用简单追加策略合并(模板元素在前,自定义元素在后)
- 完全向后兼容现有用法

测试覆盖:
- 新增 TestRenderSlideHybridMode 测试类,包含 8 个测试用例
- 验证向后兼容性(纯模板模式、纯自定义模式)
- 验证混合模式功能(变量共享、空元素列表、元素顺序等)
- 所有 79 个测试通过

文档更新:
- README.md: 新增"混合模式模板"章节,包含语法示例和使用场景
- README_DEV.md: 更新开发文档,说明元素合并策略和实现细节

规范更新:
- openspec/specs/template-system/spec.md:
  - 修改"系统必须支持自定义幻灯片"需求,支持混合模式
  - 新增 4 个需求:变量共享、元素合并策略、向后兼容、内联模板支持
  - 新增 13 个场景定义

归档:
- openspec/changes/archive/2026-03-04-template-element-composition/: 完整变更记录
2026-03-04 13:12:51 +08:00

2.3 KiB
Raw Blame History

Template Element Composition - 实现任务清单

1. 核心实现

  • 1.1 修改 Presentation.render_slide() 方法支持混合模式
  • 1.2 实现模板元素和自定义元素的合并逻辑(简单追加策略)
  • 1.3 实现自定义元素对模板变量的访问(复用 Template.resolve_element()
  • 1.4 处理空 elements 列表的情况(等同于不指定 elements

2. 单元测试

  • 2.1 添加测试:纯模板模式(向后兼容验证)
  • 2.2 添加测试:纯自定义元素模式(向后兼容验证)
  • 2.3 添加测试:混合模式基本功能
  • 2.4 添加测试:自定义元素访问模板变量
  • 2.5 添加测试:空 elements 列表
  • 2.6 添加测试:模板条件渲染后与自定义元素合并
  • 2.7 添加测试:变量未定义时的错误处理
  • 2.8 添加测试:内联模板与自定义元素混合使用
  • 2.9 添加测试:外部模板与自定义元素混合使用

3. 集成测试

  • 3.1 添加集成测试:完整的 YAML → PPTX 转换流程(混合模式)
  • 3.2 添加集成测试:验证 z 轴顺序(自定义元素覆盖模板元素)
  • 3.3 添加集成测试:背景设置与混合模式的交互

4. E2E 测试

  • 4.1 添加 E2E 测试convert 命令处理混合模式 YAML
  • 4.2 添加 E2E 测试preview 命令显示混合模式幻灯片
  • 4.3 创建测试用的混合模式 YAML 示例文件

5. 文档更新

  • 5.1 更新 README.md新增"混合模式模板"使用说明
  • 5.2 更新 README.md添加混合模式语法示例
  • 5.3 更新 README.md说明 z 轴顺序规则
  • 5.4 更新 README_DEV.md说明元素合并策略
  • 5.5 更新 README_DEV.md添加混合模式相关的开发说明

6. 验证与清理

  • 6.1 运行所有单元测试并通过(uv run pytest tests/unit/
  • 6.2 运行所有集成测试并通过(uv run pytest tests/integration/
  • 6.3 运行所有 E2E 测试并通过(uv run pytest tests/e2e/
  • 6.4 运行完整测试套件并通过(uv run pytest
  • 6.5 手动测试:使用现有 complex_presentation.yaml 验证向后兼容性
  • 6.6 手动测试:创建新的混合模式 YAML 并通过 convert 命令生成 PPTX