Skip to content

Commit 716e633

Browse files
authored
Merge pull request #462 from samzong/fix/auto-release
refactor(scripts): improve formatting and blank line handling in auto…
2 parents fbd6c2f + a286b0d commit 716e633

File tree

1 file changed

+32
-17
lines changed

1 file changed

+32
-17
lines changed

scripts/auto-release-notes.py

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import re
99
import logging
1010
import os
11+
from textwrap import dedent
1112

1213

1314
# 配置日志
@@ -195,33 +196,44 @@ def get_release_info(data, filename="rel-notes.md"):
195196
}
196197

197198
# 定义模板
198-
header_template = Template("""---
199-
hide:
200-
- toc
201-
---
202-
203-
# Release Notes
204-
205-
本页列出 d.run 各项功能的一些重要变更。
206-
207-
""")
199+
header_template = Template(
200+
dedent(
201+
"""\
202+
---
203+
hide:
204+
- toc
205+
---
206+
207+
# Release Notes
208+
209+
本页列出 d.run 各项功能的一些重要变更。
210+
"""
211+
).strip()
212+
)
208213

209-
pub_date_template = Template("## $pub_date\n\n")
210-
module_version_template = Template("### $module $version\n\n")
211-
update_type_template = Template("#### $emoji_title\n\n")
214+
pub_date_template = Template("## $pub_date")
215+
module_version_template = Template("### $module $version")
216+
update_type_template = Template("#### $emoji_title")
212217
entry_with_baseline_template = Template("- [$primary_func] $baseline")
213218
entry_without_baseline_template = Template("- [$primary_func]")
214219

215-
lines = []
216-
lines.append(header_template.substitute())
220+
def ensure_blank_line(lines_list):
221+
if lines_list and lines_list[-1] != "":
222+
lines_list.append("")
223+
224+
lines = header_template.substitute().splitlines()
225+
ensure_blank_line(lines)
217226

218227
for pub_date, modules in result.items():
228+
ensure_blank_line(lines)
219229
lines.append(pub_date_template.substitute(pub_date=pub_date))
230+
ensure_blank_line(lines)
220231
for module, versions in modules.items():
221232
for version, update_types in versions.items():
222233
lines.append(
223234
module_version_template.substitute(module=module, version=version)
224235
)
236+
ensure_blank_line(lines)
225237
for update_type in ["新功能", "增强优化", "故障修复", "无更新类型"]:
226238
if update_type in update_types:
227239
entries = update_types[update_type]
@@ -231,6 +243,7 @@ def get_release_info(data, filename="rel-notes.md"):
231243
emoji_title=emoji_map[update_type]
232244
)
233245
)
246+
ensure_blank_line(lines)
234247
for primary_func, entry in entries:
235248
baseline = entry.get("基线参数", "")
236249
if baseline:
@@ -245,9 +258,11 @@ def get_release_info(data, filename="rel-notes.md"):
245258
primary_func=primary_func
246259
)
247260
)
248-
lines.append("") # 空行分隔
261+
ensure_blank_line(lines)
262+
if lines and lines[-1] == "":
263+
lines.pop()
249264

250-
md_content = "\n".join(lines)
265+
md_content = "\n".join(lines) + "\n"
251266
try:
252267
with open(filename, "w", encoding="utf-8") as f:
253268
f.write(md_content)

0 commit comments

Comments
 (0)