优化导出Markdown压缩包的文件名过滤

This commit is contained in:
yangjian 2021-06-12 16:21:58 +08:00
parent a2a36f1895
commit 98164e45a0
2 changed files with 17 additions and 10 deletions

View File

@ -11,6 +11,7 @@
- [优化]同步LayUI组件库版本至2.6.8
- [优化]同步PearAdminLayui组件库版本至3.8.3
- [优化]文档编写页面保存逻辑;
- [优化]导出Markdown压缩包时文件名校验过滤
### v0.6.7 2021-05-29
- [新增]表格文档支持Excel文件(.xlsx格式)导入;

View File

@ -33,6 +33,12 @@ import yaml
# from pdfminer import high_level
# 替换前端传来的非法字符
def validate_title(title):
rstr = r"[\/\\\:\*\?\"\<\>\|\[\]]" # '/ \ : * ? " < > |'
new_title = re.sub(rstr, "_", title) # 替换为下划线
return new_title
# 导出MD文件压缩包
@logger.catch()
class ReportMD():
@ -44,7 +50,7 @@ class ReportMD():
# 文集名称
self.project_name = "{0}_{1}_{2}".format(
self.project_data.create_user,
self.project_data.name,
validate_title(self.project_data.name),
str(datetime.date.today())
)
@ -67,7 +73,7 @@ class ReportMD():
def work(self):
# 初始化文集YAML数据
project_toc_list = {}
project_toc_list['project_name'] = self.project_data.name
project_toc_list['project_name'] = validate_title(self.project_data.name)
project_toc_list['project_desc'] = self.project_data.intro
project_toc_list['project_role'] = self.project_data.role
project_toc_list['toc'] = []
@ -76,10 +82,10 @@ class ReportMD():
# 遍历一级文档
for d in data:
top_item = {
'name': d.name,
'file': d.name+'.md',
'name': validate_title(d.name),
'file': validate_title(d.name)+'.md',
}
md_name = d.name # 文档名称
md_name = validate_title(d.name) # 文档名称
# 文档内容如果使用Markdown编辑器编写则导出Markdown文本如果使用富文本编辑器编写则导出HTML文本
md_content = self.operat_md_media(d.pre_content) \
if d.editor_mode in [1,2] else self.operat_md_media(d.content)
@ -94,8 +100,8 @@ class ReportMD():
top_item['children'] = []
for d2 in data_2:
sec_item = {
'name': d2.name,
'file': d2.name+'.md',
'name': validate_title(d2.name),
'file': validate_title(d2.name)+'.md',
}
md_name_2 = d2.name
@ -112,11 +118,11 @@ class ReportMD():
sec_item['children'] = []
for d3 in data_3:
item = {
'name': d3.name,
'file': d3.name+'.md',
'name': validate_title(d3.name),
'file': validate_title(d3.name)+'.md',
}
sec_item['children'].append(item)
md_name_3 = d3.name
md_name_3 = validate_title(d3.name)
md_content_3 = self.operat_md_media(d3.pre_content) \
if d3.editor_mode in [1,2] else self.operat_md_media(d3.content)