修复模板索引值传递问题

This commit is contained in:
puke
2025-11-27 17:13:22 +08:00
parent 5423b77ae8
commit 3fd4696137
3 changed files with 16 additions and 14 deletions

View File

@@ -200,9 +200,8 @@ class HTMLFrameGenerator:
}
}
"""
# Preset parameters that should be ignored
PRESET_PARAMS = {'title', 'text', 'image', 'content_title', 'content_author',
'content_subtitle', 'content_genre'}
# Preset parameters that should be ignored (auto-injected by system)
PRESET_PARAMS = {'title', 'text', 'image', 'index'}
# Pattern: {{param_name:type=default}} or {{param_name=default}} or {{param_name:type}} or {{param_name}}
# Param name: must start with letter or underscore, can contain letters, digits, underscores

View File

@@ -293,15 +293,9 @@ class FrameProcessor:
content_metadata = storyboard.content_metadata if storyboard else None
# Build ext data
ext = {}
if content_metadata:
ext["content_title"] = content_metadata.title or ""
ext["content_author"] = content_metadata.author or ""
ext["content_subtitle"] = content_metadata.subtitle or ""
ext["content_genre"] = content_metadata.genre or ""
# Add frame index (1-based)
ext["index"] = frame.index + 1
ext = {
"index": frame.index + 1,
}
# Add custom template parameters
if config.template_params:

View File

@@ -521,12 +521,21 @@ def render_style_config(pixelle_video):
template_path = resolve_template_path(frame_template)
generator = HTMLFrameGenerator(template_path)
# Generate preview (use custom parameters from video generation section)
# Build ext dict with auto-injected parameters (same as FrameProcessor)
ext = {
"index": 1, # Preview uses index 1
}
# Add custom parameters from user input
if custom_values_for_video:
ext.update(custom_values_for_video)
# Generate preview
preview_path = run_async(generator.generate_frame(
title=preview_title,
text=preview_text,
image=preview_image,
ext=custom_values_for_video if custom_values_for_video else None
ext=ext
))
# Display preview