1
0

fix: use quoted strings for size values in YAML to prevent time parsing

YAML parser interprets 16:9 as time format (16h 9m = 969s).
Using quoted strings "16:9" ensures correct string parsing.
This commit is contained in:
2026-03-02 23:50:31 +08:00
parent ab2510a400
commit f273cef195
23 changed files with 55 additions and 55 deletions

View File

@@ -101,7 +101,7 @@ uv run yaml2pptx.py convert presentation.yaml --skip-validation
```yaml
metadata:
size: 16:9 # 或 4:3
size: "16:9" # 或 "4:3"
slides:
- background:
@@ -121,7 +121,7 @@ slides:
```yaml
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide

View File

@@ -29,7 +29,7 @@ def project_root_dir():
# ============= YAML 文件 Fixtures =============
MINIMAL_YAML = """metadata:
size: 16:9
size: "16:9"
slides:
- background:
@@ -207,7 +207,7 @@ def yaml_with_all_elements(temp_dir):
"""创建包含所有元素类型的 YAML"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- background:
@@ -292,7 +292,7 @@ def multiple_slides_yaml(temp_dir):
"""创建多张幻灯片的 YAML"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
# 第一张:标题页

View File

@@ -37,7 +37,7 @@ class TestCheckCmd:
# 创建包含错误的 YAML
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -59,7 +59,7 @@ slides:
"""测试只有警告的 YAML验证通过但有警告"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -81,7 +81,7 @@ slides:
"""测试检查使用模板的 YAML"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -99,7 +99,7 @@ slides:
"""测试检查使用不存在模板的 YAML"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- template: nonexistent
@@ -118,7 +118,7 @@ slides:
"""测试检查报告多个错误"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -147,7 +147,7 @@ slides:
"""测试检查包含位置信息"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -170,7 +170,7 @@ slides:
"""测试检查缺少必需变量的模板"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide

View File

@@ -55,7 +55,7 @@ class TestConvertCmd:
"""测试使用模板转换"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -147,7 +147,7 @@ slides:
"""测试转换保留中文内容"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -41,7 +41,7 @@ class TestGeneratePreviewHtml:
"""测试使用模板生成 HTML"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -71,7 +71,7 @@ slides:
"""测试多张幻灯片的 HTML"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
# 文本元素幻灯片

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
# Missing 'slides' key
elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -1,5 +1,5 @@
metadata:
size: 16:9
size: "16:9"
slides:
- background:

View File

@@ -32,7 +32,7 @@ class TestTemplateCaching:
# 创建使用模板的 YAML
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -69,7 +69,7 @@ class TestRenderSlide:
"""测试渲染使用模板的幻灯片"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -94,7 +94,7 @@ slides:
# 有 subtitle 的情况
yaml_with = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -115,7 +115,7 @@ slides:
# 没有 subtitle 的情况
yaml_without = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -136,7 +136,7 @@ slides:
"""测试变量传递"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -164,7 +164,7 @@ class TestPresentationWithoutTemplate:
"""测试直接渲染元素(不使用模板)"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -39,7 +39,7 @@ class TestRenderingFlow:
"""测试文本元素渲染"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -81,7 +81,7 @@ slides:
"""测试图片元素渲染"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -111,7 +111,7 @@ slides:
"""测试形状元素渲染"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -145,7 +145,7 @@ slides:
"""测试表格元素渲染"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -180,7 +180,7 @@ slides:
"""测试背景渲染"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- background:
@@ -217,7 +217,7 @@ slides:
"""测试使用模板的幻灯片渲染"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -254,7 +254,7 @@ slides:
"""测试多张幻灯片渲染"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -26,7 +26,7 @@ class TestValidationFlow:
"""测试验证包含警告的 YAML"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -49,7 +49,7 @@ slides:
"""测试验证包含错误的 YAML"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -81,7 +81,7 @@ slides:
"""测试收集多个错误"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -110,7 +110,7 @@ slides:
"""测试错误包含位置信息"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -134,7 +134,7 @@ slides:
"""测试验证使用模板的 YAML"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -155,7 +155,7 @@ slides:
"""测试验证缺少必需变量的模板"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- template: title-slide
@@ -175,7 +175,7 @@ slides:
# 创建包含错误和警告的 YAML
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -200,7 +200,7 @@ slides:
"""测试验证结果格式化"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -229,7 +229,7 @@ slides:
"""测试验证图片资源"""
yaml_content = f"""
metadata:
size: 16:9
size: "16:9"
slides:
- elements:
@@ -250,7 +250,7 @@ slides:
"""测试验证不存在的图片资源"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements:

View File

@@ -65,7 +65,7 @@ class TestPresentationSize:
"""测试 16:9 尺寸"""
yaml_content = """
metadata:
size: 16:9
size: "16:9"
slides:
- elements: []
"""
@@ -80,7 +80,7 @@ slides:
"""测试 4:3 尺寸"""
yaml_content = """
metadata:
size: 4:3
size: "4:3"
slides:
- elements: []
"""