|
|
|
@ -1,17 +1,60 @@
|
|
|
|
|
import markdown_to_json
|
|
|
|
|
import json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def markdown_to_dict(markdown_content):
|
|
|
|
|
"""
|
|
|
|
|
将 Markdown 内容转换为 Python 字典
|
|
|
|
|
"""
|
|
|
|
|
# 将 Markdown 转换为 JSON 字符串
|
|
|
|
|
json_content = markdown_to_json.jsonify(markdown_content)
|
|
|
|
|
# 解码 Unicode 转义
|
|
|
|
|
json_content = json_content.encode('utf-8').decode('unicode_escape')
|
|
|
|
|
# 将 JSON 字符串转换为字典
|
|
|
|
|
return json.loads(json_content)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def extract_level1(json_dict):
|
|
|
|
|
"""
|
|
|
|
|
提取一级目录,生成指定格式的 JSON 对象列表
|
|
|
|
|
"""
|
|
|
|
|
# 获取第一个一级目录的名称
|
|
|
|
|
level1_title = next(iter(json_dict.keys()), None)
|
|
|
|
|
if level1_title:
|
|
|
|
|
return [{"type": "cover", "data": {"title": level1_title, "text": level1_title}}]
|
|
|
|
|
return []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def extract_level2(json_dict, level1_title=None):
|
|
|
|
|
"""
|
|
|
|
|
提取指定一级目录下的二级目录,生成指定格式的 JSON 对象列表
|
|
|
|
|
"""
|
|
|
|
|
# 如果没有指定一级目录,则使用第一个一级目录
|
|
|
|
|
if level1_title is None:
|
|
|
|
|
level1_title = next(iter(json_dict.keys()), None)
|
|
|
|
|
|
|
|
|
|
if level1_title and level1_title in json_dict:
|
|
|
|
|
return [{"type": "transition", "data": {"title": title, "text": title}} for title in
|
|
|
|
|
json_dict[level1_title].keys()]
|
|
|
|
|
return []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
# 打开文本文件 Sample.md
|
|
|
|
|
with open("Sample.md", "r", encoding="utf-8") as file:
|
|
|
|
|
# 读取 Markdown 文件的内容
|
|
|
|
|
markdown_content = file.read()
|
|
|
|
|
# 将 Markdown 转换为 JSON
|
|
|
|
|
json_content = markdown_to_json.jsonify(markdown_content)
|
|
|
|
|
# 解码 Unicode 转义
|
|
|
|
|
json_content = json_content.encode('utf-8').decode('unicode_escape')
|
|
|
|
|
# 尝试将其转换为字典
|
|
|
|
|
json_content = json.loads(json_content)
|
|
|
|
|
json_str = json.dumps(json_content, ensure_ascii=False)
|
|
|
|
|
# 打印 JSON 内容
|
|
|
|
|
print(json_str)
|
|
|
|
|
# 将 Markdown 转换为字典
|
|
|
|
|
json_dict = markdown_to_dict(markdown_content)
|
|
|
|
|
|
|
|
|
|
# 提取一级目录
|
|
|
|
|
level1_json = extract_level1(json_dict)
|
|
|
|
|
print("一级目录:")
|
|
|
|
|
for item in level1_json:
|
|
|
|
|
print(json.dumps(item, ensure_ascii=False))
|
|
|
|
|
|
|
|
|
|
# 提取二级目录(自动获取一级目录名称)
|
|
|
|
|
level2_json = extract_level2(json_dict)
|
|
|
|
|
print("\n二级目录:")
|
|
|
|
|
for item in level2_json:
|
|
|
|
|
print(json.dumps(item, ensure_ascii=False))
|