1
0
Files
PPTX/openspec/changes/archive/2026-03-02-add-yaml-validation/proposal.md
lanyuanxiaoyao 83ff827ad1 feat: add YAML validation with check command and auto-validation
Implements comprehensive validation before PPTX conversion to catch errors early. Includes element-level validation (colors, fonts, table consistency) and system-level validation (geometry, resources). Supports standalone check command and automatic validation during conversion.
2026-03-02 18:14:45 +08:00

41 lines
1.9 KiB
Markdown
Raw 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.
## Why
用户在编写 YAML 演示文稿源文件时,经常遇到元素超出页面范围、图片文件路径错误、语法问题等错误,这些问题只有在转换成 PPTX 后打开查看才能发现,导致需要反复修改和转换,效率低下。需要提供一个验证功能,在转换前检查 YAML 文件的各种潜在问题,让用户能够提前发现并修复错误。
## What Changes
- 添加 YAML 文件验证功能,支持多层次的检查
- 结构验证:必需字段、数据类型、枚举值
- 几何验证:元素边界、页面范围检查
- 资源验证:图片文件、模板文件存在性
- 样式验证:颜色格式、字体大小合理性
- 添加独立的 `check` 子命令:`yaml2pptx.py check input.yaml`
- 添加转换前自动检查选项:默认启用,可通过 `--no-check` 跳过
- 实现分级的错误报告系统
- ERROR阻止转换的严重问题文件不存在、语法错误、关键参数缺失
- WARNING影响视觉效果的问题元素超出页面、字体太小
- INFO优化建议
- 输出清晰的命令行报告,显示问题位置(幻灯片、元素)和具体描述
## Capabilities
### New Capabilities
- `yaml-validation`: YAML 演示文稿文件的验证能力,包括结构验证、几何验证、资源验证和样式验证
### Modified Capabilities
无。这是新增功能,不修改现有能力的需求。
## Impact
- **主程序**:修改 `yaml2pptx.py`,添加 `check` 子命令和 `--no-check` 选项
- **新增模块**:创建验证器模块(建议在 `validators/` 目录下)
- 结构验证器
- 几何验证器
- 资源验证器
- 样式验证器
- **现有功能**:不影响现有的转换功能,验证是可选的
- **依赖**:无新增外部依赖,使用现有的 PyYAML 和标准库
- **用户体验**:提升开发效率,减少调试时间