88import re
99import logging
1010import 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