1
0
Files
lanyuanxiaoyao 7ef29ea039 feat: 实现幻灯片备注功能,将description写入PPT备注页
- 添加 PptxGenerator._set_notes() 方法设置备注
- 在 add_slide() 中调用 _set_notes() 处理 description
- 仅幻灯片级别的 description 写入备注,不继承模板
- 添加备注功能测试用例(8个测试)
- 更新 README.md 和 README_DEV.md 文档
- 新建 pptx-slide-notes spec
- 更新 page-description spec 允许写入备注
- 归档 add-slide-notes 变更
2026-03-04 14:47:03 +08:00

131 lines
4.9 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.
# Page Description
## Purpose
Page Description功能允许用户为文档元数据、模板和幻灯片添加描述信息用于说明文档概要、页面的用途、设计意图或内容概要。这提高了演示文稿、模板和幻灯片的可读性和可维护性。
## Requirements
### Requirement: metadata必须支持可选的description字段
演示文稿的metadata SHALL 支持可选的 `description` 字段,用于描述整个演示文稿的概要和用途。
#### Scenario: metadata包含description字段
- **WHEN** YAML文件的metadata定义了 `description: "这是关于项目年度总结的演示文稿"`
- **THEN** 系统成功加载该描述字段可通过metadata对象访问
#### Scenario: metadata不包含description字段
- **WHEN** YAML文件的metadata未定义 `description` 字段
- **THEN** 系统正常加载演示文稿description属性为None或空字符串
#### Scenario: metadata description为空字符串
- **WHEN** metadata定义了 `description: ""`
- **THEN** 系统接受空字符串作为有效值
### Requirement: 模板必须支持可选的description字段
模板 SHALL 支持可选的 `description` 字段,用于描述该模板的用途和设计意图。
#### Scenario: 模板包含description字段
- **WHEN** 模板文件定义了 `description: "用于章节标题页的模板,包含主标题和副标题"`
- **THEN** 系统成功加载该描述字段,可通过模板对象访问
#### Scenario: 模板不包含description字段
- **WHEN** 模板文件未定义 `description` 字段
- **THEN** 系统正常加载模板description属性为None或空字符串
#### Scenario: description为空字符串
- **WHEN** 模板文件定义了 `description: ""`
- **THEN** 系统接受空字符串作为有效值
### Requirement: 幻灯片必须支持可选的description字段
幻灯片定义 SHALL 支持可选的 `description` 字段,用于描述该幻灯片的作用和内容。
#### Scenario: 幻灯片包含description字段
- **WHEN** 幻灯片定义了 `description: "介绍项目背景和目标"`
- **THEN** 系统成功加载该描述字段,可通过幻灯片对象访问
#### Scenario: 幻灯片不包含description字段
- **WHEN** 幻灯片定义未包含 `description` 字段
- **THEN** 系统正常处理幻灯片description属性为None或空字符串
### Requirement: description字段不得影响渲染逻辑
系统 SHALL 在渲染幻灯片时忽略 `description` 字段对视觉元素的影响,但会将幻灯片级别的 `description` 写入 PPTX 备注页。
#### Scenario: 渲染包含description的模板
- **WHEN** 系统渲染包含 `description` 字段的模板
- **THEN** description不参与元素渲染不影响幻灯片视觉输出
#### Scenario: 渲染包含description的幻灯片
- **WHEN** 系统渲染包含 `description` 字段的幻灯片
- **THEN** description写入PPTX文件的备注页不影响幻灯片视觉输出
### Requirement: YAML解析器必须正确解析description字段
系统 SHALL 从YAML文件中正确读取 `description` 字段,并将其传递给数据模型。
#### Scenario: 解析metadata中的description
- **WHEN** YAML文件的metadata包含 `description: "文档描述"`
- **THEN** 解析器将该字符串传递给metadata对象的description属性
#### Scenario: 解析模板中的description
- **WHEN** YAML文件中的模板包含 `description: "这是描述"`
- **THEN** 解析器将该字符串传递给模板对象的description属性
#### Scenario: 解析幻灯片中的description
- **WHEN** YAML文件中的幻灯片包含 `description: "幻灯片描述"`
- **THEN** 解析器将该字符串传递给幻灯片对象的description属性
### Requirement: 数据模型必须包含description属性
元数据、模板和幻灯片数据模型 SHALL 包含 `description` 属性,用于存储描述信息。
#### Scenario: metadata对象包含description属性
- **WHEN** 开发者访问metadata对象
- **THEN** 可以通过 `metadata.description` 获取描述信息
#### Scenario: 模板对象包含description属性
- **WHEN** 开发者访问模板对象
- **THEN** 可以通过 `template.description` 获取描述信息
#### Scenario: 幻灯片对象包含description属性
- **WHEN** 开发者访问幻灯片对象
- **THEN** 可以通过 `slide.description` 获取描述信息
### Requirement: description字段必须支持中文字符
系统 SHALL 支持在 `description` 字段中使用中文字符和其他Unicode字符。
#### Scenario: metadata description包含中文
- **WHEN** metadata的description包含中文字符如 "这是关于项目的演示文稿"
- **THEN** 系统正确处理,不出现编码错误
#### Scenario: description包含中文
- **WHEN** 模板或幻灯片的description包含中文字符如 "这是中文描述"
- **THEN** 系统正确处理,不出现编码错误
#### Scenario: description包含多行文本
- **WHEN** description字段使用YAML多行文本格式
- **THEN** 系统正确读取完整的描述内容