From f17b2e579b99bd975a4a83d2664a55a3caf6a5ea Mon Sep 17 00:00:00 2001 From: iuu <2167162990@qq.com> Date: Fri, 6 Dec 2024 03:39:54 +0000 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20mdtohtml.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MD文件转html --- mdtohtml.py | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 mdtohtml.py diff --git a/mdtohtml.py b/mdtohtml.py new file mode 100644 index 0000000..2b6d558 --- /dev/null +++ b/mdtohtml.py @@ -0,0 +1,128 @@ +import markdown +import os + +# 定义源目录和目标目录 +source_dir = './output' # 存放 Markdown 文件的源目录 +target_dir = './output_html' # 生成 HTML 文件的目标目录 + +# 确保目标目录存在,如果不存在则创建 +os.makedirs(target_dir, exist_ok=True) + + +# 获取文件夹中的所有 .md 文件 +def get_md_files(directory): + md_files = [] + for root, dirs, files in os.walk(directory): + # 排除隐藏文件夹(例如 .git 等) + dirs[:] = [d for d in dirs if not d.startswith('.')] + for file in files: + if file.endswith('.md'): + md_files.append(os.path.relpath(os.path.join(root, file), directory)) + return md_files + + +# 获取源目录下的所有 Markdown 文件 +md_files = get_md_files(source_dir) + +# 创建目录 HTML 内容 +directory_html_content = '''''' + +# 创建 HTML 页面,包含正文内容和目录 +for md_filename in md_files: + # 获取 Markdown 文件的完整路径 + md_file_path = os.path.join(source_dir, md_filename) + + # 读取 Markdown 文件内容 + with open(md_file_path, 'r', encoding='utf-8') as md_file: + md_content = md_file.read() + + # 使用 markdown 库将 Markdown 转换为 HTML + html_content = markdown.markdown(md_content) + + # 获取 HTML 文件名,取 "_" 后部分 + html_filename = md_filename.split('_', 1)[1].replace('.md', '.html') + + # 获取标题,取 "_" 前部分 + title = md_filename.split('_', 1)[0] + + # 生成目标 HTML 文件的路径 + html_file_path = os.path.join(target_dir, html_filename) + + # 创建 HTML 文件头部,设置字符编码为 UTF-8,并将目录嵌入到页面 + html_header = f''' + + + + + {title} + + + + +
+''' + + # 添加正文内容 + html_content = f'

{title}

' + html_content + + # 添加 HTML 文件尾部 + html_footer = '''
+ +''' + + # 完整的 HTML 内容 + full_html_content = html_header + html_content + html_footer + + # 将 HTML 内容保存到文件 + with open(html_file_path, 'w', encoding='utf-8') as html_file: + html_file.write(full_html_content) + + print(f"{md_filename} 已转换为 {html_filename}")