forked from mirror/MrDoc
优化导出Markdown压缩包的文件名过滤
This commit is contained in:
parent
a2a36f1895
commit
98164e45a0
@ -11,6 +11,7 @@
|
||||
- [优化]同步LayUI组件库版本至2.6.8;
|
||||
- [优化]同步PearAdminLayui组件库版本至3.8.3;
|
||||
- [优化]文档编写页面保存逻辑;
|
||||
- [优化]导出Markdown压缩包时文件名校验过滤;
|
||||
|
||||
### v0.6.7 2021-05-29
|
||||
- [新增]表格文档支持Excel文件(.xlsx格式)导入;
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user