1
0

feat: 添加页面级 enabled 参数支持幻灯片启用/禁用控制

添加页面级 enabled 布尔参数,用于临时禁用整个幻灯片,无需删除或注释 YAML 内容。
与元素级 visible 条件渲染独立工作,提供两层控制机制。

主要变更:
- 在 yaml2pptx.py 主循环中检查 enabled 参数,跳过禁用的幻灯片
- 实现独立的 slide_index 计数器,准确统计实际渲染的幻灯片数量
- 在 yaml_loader.py 中添加 enabled 字段验证,确保类型为布尔值
- 添加 11 个测试用例,覆盖各种使用场景
- 更新 README.md 和 README_DEV.md 文档,说明 enabled 和 visible 的区别
- 创建新的 slide-enabled-control capability 规范
- 更新 template-system 规范,添加 enabled 字段支持

使用示例:
  slides:
    - template: title-slide
      vars:
        title: "正常页面"
    - enabled: false
      template: work-in-progress
      vars:
        title: "临时禁用的页面"

测试:所有 282 个单元测试通过
This commit is contained in:
2026-03-03 16:33:10 +08:00
parent 01eacb0b97
commit 01a93ce13b
14 changed files with 710 additions and 2 deletions

View File

@@ -186,3 +186,27 @@ Template system 提供可复用的幻灯片布局和样式定义。模板包含
- **WHEN** YAML 文件中所有幻灯片都是自定义幻灯片(不包含 `template` 字段)
- **THEN** 系统不检查 `templates_dir` 是否为 `None`,正常处理
### Requirement: 幻灯片定义必须支持 enabled 字段
幻灯片定义 SHALL 支持可选的 `enabled` 布尔字段用于控制该幻灯片是否渲染。该字段与模板系统的其他字段template、vars、elements、background独立工作。
#### Scenario: 幻灯片包含 enabled 字段
- **WHEN** 幻灯片定义包含 `enabled: false``enabled: true`
- **THEN** 系统正常加载幻灯片定义,并在渲染时检查该字段
#### Scenario: enabled 字段可选
- **WHEN** 幻灯片定义未包含 `enabled` 字段
- **THEN** 系统默认该幻灯片为启用状态
#### Scenario: enabled 与 template 共存
- **WHEN** 幻灯片同时定义了 `enabled: false``template: title-slide`
- **THEN** 系统跳过该幻灯片,不加载模板
#### Scenario: enabled 与自定义幻灯片共存
- **WHEN** 自定义幻灯片(不使用模板)定义了 `enabled: false`
- **THEN** 系统跳过该幻灯片,不渲染元素列表