1
0
Files
PPTX/docs/reference/validation.md
lanyuanxiaoyao 124ef0e5ce refactor: 重构文档结构,采用渐进式信息披露模式
将 README.md 拆分为多个专题文档,减少认知负荷:
- 用户文档迁移到 docs/ (用户指南、元素、模板、参考等)
- 开发文档迁移到 docs/development/ (架构、模块、规范)
- README.md 精简至 ~290 行,仅保留概览和导航
- 删除 README_DEV.md,内容已迁移
- 归档 OpenSpec 变更 refactor-docs-progressive-disclosure
2026-03-06 15:11:36 +08:00

192 lines
3.5 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.
# 验证功能
yaml2pptx 提供强大的验证功能,在转换前自动检查 YAML 文件,提前发现问题。
## 验证级别
验证结果分为三个级别:
### ERROR错误
阻止转换的严重问题:
- 文件不存在(图片、模板文件等)
- YAML 语法错误
- 必需的变量未提供
- 无效的数据类型
### WARNING警告
影响视觉效果但不阻止转换的问题:
- 元素超出页面范围
- 字体大小过小或过大
- 颜色格式不规范但可解析
### INFO信息
优化建议和提示:
- 性能优化建议
- 最佳实践提示
## 验证内容
### YAML 语法和结构
- 检查 YAML 语法是否正确
- 检查必需字段是否存在
- 检查数据类型是否正确
### 元素边界
- 检查元素是否超出页面范围
- 0.1 英寸容忍度内的超出会发出警告
### 资源文件
- 检查图片文件是否存在
- 检查模板文件是否存在
- 验证文件路径是否有效
### 颜色格式
- 检查颜色格式是否正确(#RGB#RRGGBB
- 检查颜色值是否有效
### 字体配置
- 检查字体大小是否合理(<6 或 >72 会警告)
- 检查字体引用是否存在
- 检查字体引用循环
### 表格数据
- 检查表格数据一致性
- 检查列数是否匹配
## 使用验证
### 独立验证
```bash
uv run yaml2pptx.py check presentation.yaml
```
### 使用模板时验证
```bash
uv run yaml2pptx.py check presentation.yaml --template ./templates.yaml
```
### 自动验证
转换时默认会自动验证:
```bash
uv run yaml2pptx.py convert presentation.yaml output.pptx
```
### 跳过验证
```bash
uv run yaml2pptx.py convert presentation.yaml output.pptx --skip-validation
```
## 验证结果示例
### 有错误和警告
```
正在检查 YAML 文件...
- 错误 (2):
[幻灯片 2, 元素 1] 无效的颜色格式: red (应为 #RRGGBB)
[幻灯片 3, 元素 2] 图片文件不存在: logo.png
- 警告 (1):
[幻灯片 1, 元素 1] 元素右边界超出: 10.50 > 10
检查完成: 发现 2 个错误, 1 个警告
转换已终止
```
### 验证通过
```
正在检查 YAML 文件...
检查完成: 未发现问题
```
### 仅警告
```
正在检查 YAML 文件...
- 警告 (2):
[幻灯片 1, 元素 1] 元素右边界超出: 10.05 > 10
[幻灯片 2, 元素 2] 字体大小过小: 5
检查完成: 发现 2 个警告
```
## 常见验证错误
### 文件不存在
```
错误: 图片文件未找到: images/logo.png
```
**解决方法**:检查图片路径是否正确
### YAML 语法错误
```
错误: YAML 语法错误: 第 15 行
```
**解决方法**:检查缩进和语法,确保 YAML 格式正确
### 缺少必需变量
```
错误: 缺少必需变量: title
```
**解决方法**:在 `vars` 中提供该变量
### 无效颜色格式
```
错误: 无效的颜色格式: red (应为 #RRGGBB)
```
**解决方法**:使用 `#ff0000` 格式
## 验证容忍度
几何验证时,允许 0.1 英寸的容忍度:
- 超出 ≤ 0.1 英寸:不报错
- 超出 > 0.1 英寸:发出警告
```python
TOLERANCE = 0.1 # 英寸
if right > slide_width + TOLERANCE:
# 报告 WARNING
```
## 最佳实践
1. **开发时频繁验证**:使用 `check` 命令快速验证
2. **修复所有错误**:确保没有 ERROR 级别的问题
3. **关注警告**WARNING 虽不阻止转换,但可能影响视觉效果
4. **使用预览模式**:结合预览模式查看实际效果
## 相关文档
- [命令行选项](commands.md) - 所有命令和参数
- [故障排查](../troubleshooting.md) - 常见问题解决
[返回文档索引](../README.md)