1
0
Files
lanyuanxiaoyao 01a93ce13b 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 个单元测试通过
2026-03-03 16:33:10 +08:00

74 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Slide Enabled Control
## Purpose
页面级启用/禁用控制,通过 `enabled` 布尔参数控制整个幻灯片是否渲染。提供简单的静态开关,用于开发调试和版本管理。
## Requirements
### Requirement: 幻灯片必须支持 enabled 参数
幻灯片定义 SHALL 支持可选的 `enabled` 布尔参数,用于控制该幻灯片是否渲染。
#### Scenario: 禁用的幻灯片不渲染
- **WHEN** 幻灯片定义了 `enabled: false`
- **THEN** 系统跳过该幻灯片,不渲染到演示文稿中
#### Scenario: 启用的幻灯片正常渲染
- **WHEN** 幻灯片定义了 `enabled: true`
- **THEN** 系统正常渲染该幻灯片
#### Scenario: 默认启用幻灯片
- **WHEN** 幻灯片未定义 `enabled` 字段
- **THEN** 系统默认该幻灯片为启用状态,正常渲染
### Requirement: enabled 参数必须是布尔值
系统 SHALL 验证 `enabled` 参数的类型为布尔值,不支持条件表达式。
#### Scenario: 接受布尔值
- **WHEN** 幻灯片定义了 `enabled: false``enabled: true`
- **THEN** 系统正常处理
#### Scenario: 拒绝非布尔值
- **WHEN** 幻灯片定义了 `enabled: "false"``enabled: 0` 等非布尔值
- **THEN** 系统抛出验证错误,提示 enabled 必须是布尔值
#### Scenario: 拒绝条件表达式
- **WHEN** 幻灯片定义了 `enabled: "{some_var}"`
- **THEN** 系统抛出验证错误,提示 enabled 不支持条件表达式
### Requirement: enabled 与元素级 visible 独立工作
系统 SHALL 支持页面级 `enabled` 和元素级 `visible` 同时使用,两者独立判断。
#### Scenario: enabled 和 visible 共存
- **WHEN** 幻灯片定义了 `enabled: true`,且模板元素包含 `visible` 条件
- **THEN** 系统先检查页面级 enabled再检查元素级 visible
#### Scenario: enabled=false 时不检查 visible
- **WHEN** 幻灯片定义了 `enabled: false`
- **THEN** 系统跳过该幻灯片,不执行模板渲染和元素级 visible 检查
### Requirement: 渲染统计必须准确
系统 SHALL 只统计实际渲染的幻灯片数量,不包括禁用的幻灯片。
#### Scenario: 进度显示准确
- **WHEN** 演示文稿包含 5 个幻灯片,其中 2 个 enabled=false
- **THEN** 系统显示"处理幻灯片 1/3"、"处理幻灯片 2/3"、"处理幻灯片 3/3"
#### Scenario: 最终统计准确
- **WHEN** 演示文稿包含 5 个幻灯片,其中 2 个 enabled=false
- **THEN** 生成的 PPTX 文件包含 3 个幻灯片