fix: 标题默认位置 fallback 改为 bottom,与前端 DEFAULT_TITLE_SETTINGS 对齐 #1691
Reference in New Issue
Block a user
Delete Branch "fix/title-position-fallback-wrap-consistency"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
改动内容
后端修改(3 处)
position_to_ass_alignment()fallback 从 8(top) 改为 2(bottom)packages/domain/ass_subtitle_builder.pyDEFAULT_TITLE_SETTINGS.position = "bottom"对齐build_ass_content()title 默认 position 从"top"改为"bottom"packages/domain/ass_subtitle_builder.pysubtitle_generator.generate_ass_from_timeline()title 默认 position 同步apps/worker/video_processing/subtitle_generator.pytitle_cfg.get("position", "top")→title_cfg.get("position", "bottom")关于 Task 5(换行一致性)
_wrap_title_text已使用available_width = video_width - margin_l - margin_r作为固定宽度约束,与前端基于百分比的约束逻辑一致。换行计算使用原始font_size(不做 1.35x 补偿),与 CSS 预览保持一致。测试更新
TestDefaultPositionBottom测试类(3 个测试)关联
与前端工程师的 PR 配合使用,确保预览和最终生成视频标题位置一致。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
无
✅ 良好实践
top到bottom时,同步更新了所有相关单元测试(包括unknown、empty string、None等边界情况),并新增了TestDefaultPositionBottom测试类,确保了行为变更的一致性和可靠性。packages/domain/ass_subtitle_builder.py中position_to_ass_alignment函数的文档字符串,明确指出了新的默认值及其与前端配置的对齐关系,有助于后续维护。subtitle_generator.py和ass_subtitle_builder.py之间保持了逻辑一致,统一将默认位置参数调整为"bottom",避免了潜在的配置冲突。🤖 由 AI 代码审查机器人自动生成 | 2026-09-04 07:15:20 | 模型:
🚀 预览环境已部署
LGTM ✅ CI 全绿,改动正确。
🗑️ 预览环境已清理
PR #1691 已关闭或合并,对应的预览环境已被清理。