fix: _wrap_chinese crash on mixed-width punctuation

_image_generator.py _wrap_chinese 当标题中只有 ASCII 标点
(如 ( ) ?) 而无全角标点时,max() 收到空序列崩溃。

修复:try-except 兜底 + 补充 ASCII 标点到断点列表
This commit is contained in:
Yuzhiran Dev
2026-06-03 13:13:19 +08:00
parent c6628b22f6
commit d0896ef10e
+4 -1
View File
@@ -109,7 +109,10 @@ def _wrap_chinese(text: str, chars_per_line: int = 14) -> List[str]:
while len(remainder) > chars_per_line: while len(remainder) > chars_per_line:
chunk = remainder[:chars_per_line] chunk = remainder[:chars_per_line]
# 尝试在最后一个标点处断开 # 尝试在最后一个标点处断开
cut = max(chunk.rfind(c) + 1 for c in ("", "", "", "", "", "", "", "", " ", "") if c in chunk[:-1]) try:
cut = max(chunk.rfind(c) + 1 for c in ("", "", "", "", "", "", "", "", " ", "", ",", ".", "!", "?", ":", ";", ")", "(", "-") if c in chunk[:-1])
except ValueError:
cut = 0
if cut <= 0: if cut <= 0:
cut = chars_per_line cut = chars_per_line
lines.append(remainder[:cut].strip()) lines.append(remainder[:cut].strip())