首页 > 其他分享 >md文件批量转html

md文件批量转html

时间:2024-07-08 11:54:50浏览次数:8  
标签:md dest item html path folder 文件批量

1.requirements.txt

beautifulsoup4==4.12.3
Markdown==3.6

2.main.py

import markdown
import os
import shutil
from bs4 import BeautifulSoup
import uuid
import argparse


def md2html(src_folder, dest_folder):
    for item in os.listdir(src_folder):
        item_path = os.path.join(src_folder, item)
        dest_item_path = os.path.join(dest_folder, item)

        # 如果是文件夹,则递归调用函数处理子文件夹
        if os.path.isdir(item_path):
            os.makedirs(dest_item_path, exist_ok=True)
            md2html(item_path, dest_item_path)

        # 如果是文件且以.md结尾,则复制并转换文件
        elif os.path.isfile(item_path) and item.endswith('.md'):
            dest_item_path = dest_item_path[:-3] + '.html'  # 替换文件后缀为.html
            with open(item_path, 'r', encoding='utf-8') as md_file:
                md_content = md_file.read()
            html_content = markdown.markdown(md_content)
            # 添加HTML结构
            # 使用BeautifulSoup库解析html
            soup = BeautifulSoup(html_content, 'html.parser')

            # 遍历所有的标签,并添加id属性
            for tag in soup.find_all(True):
                tag['id'] = str(uuid.uuid4())  # 生成一个随机的UUID作为id

            # 输出添加id属性后的html
            html_with_uuid = str(soup)

            # 手动添加<html>, <head>, <title>, <meta> 和<body>标签
            html_full_page = f"<!DOCTYPE html>\n<html id='{uuid.uuid4()}'>\n<head id='{uuid.uuid4()}'>\n<title id='{uuid.uuid4()}'>{os.path.basename(item_path)}</title>\n<meta id='{uuid.uuid4()}' charset='UTF-8'>\n</head>\n<body id='{uuid.uuid4()}'>\n{html_with_uuid}\n</body>\n</html>"

            with open(dest_item_path, 'w', encoding='utf-8') as html_file:
                html_file.write(html_full_page)

        # 非md文件正常复制
        else:
            shutil.copy2(item_path, dest_item_path)


def main():
    parser = argparse.ArgumentParser(description='Convert markdown to html.')
    parser.add_argument('src_folder', type=str, help='The source folder that contains the markdown files.')
    parser.add_argument('dest_folder', type=str,
                        help='The destination folder that will store the generated html files.')

    args = parser.parse_args()

    md2html(args.src_folder, args.dest_folder)


if __name__ == "__main__":
    main()

 

3. 执行命令

python3 main.py $1 $2

 

标签:md,dest,item,html,path,folder,文件批量
From: https://www.cnblogs.com/QAZLIU/p/18284095

相关文章

  • 前端JS特效第19集:HTML5鼠标跟随星星光标特效
    HTML5鼠标跟随星星光标特效,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml">......
  • 前端JS特效第20集:HTML5图片瀑布流带筛选功能代码
    HTML5图片瀑布流带筛选功能代码,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtml><htmllang="en"class="no-js"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,init......
  • 前端JS特效第21集:HTML5响应式多种切换效果轮播大图切换js特效代码
    HTML5响应式多种切换效果轮播大图切换js特效代码,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999......
  • 前端JS特效第22集:html5音乐旋律自定义交互特效
    html5音乐旋律自定义交互特效,先来看看效果:部分核心的代码如下(全部代码在文章末尾):<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>ChimeTime™</title><linkrel="stylesheet"href="css/style.css......
  • Spark Special_杨宁远 杂题分析.md
    SparkSpecial图论_杨宁远杂题分析Date:2024-07-03Preface本文基于杨宁远@ynycoding的课件与题单,对省选/NOIP阶段图论的建模方法和解题策略进行总结,以及本阶段常用方法、模型和Trick。A.[AGC056C]0/1Balanced[AGC056C]01Balanced-洛谷|计算机科学教育新生态(......
  • html入门
    1.HTML是什么HTML是什么:即HyperTextMarkuplanguage超文本标记语言,作用是定义网页的内容和结构。2.HTML元素HTML是由一系列元素组成。如:<p>Hello</P>元素可以有属性,如:<pid="p1">Hello</p>元素之间可以嵌套,如:<p>Hello<b>Wolrd</b><......
  • 制作mdx字典时的常见错误
    首先确保data.txt的换行字符(NewlineCharacter)是CR+TF(Windows)Encoding是UTF-8 withoutSignature如果不按这个标准来,很容易出现词条数目对不上。 下面正式进行troubleshooting: Beginingloadingsourcefile...Contentislongerthen8388608atposition:0ofthe......
  • 关于web 第一章 初识HTML以及HTML四大案例 (保姆级教学)
    什么是HTML?HTML是用来描述网页的一种语言。HTML指的是超文本标记语言(Hyper Text Markup Language)HTML不是一种编程语言,而是一种标记语言 (markuplanguage)标记语言是一套标记标签 (markuptag)HTML使用标记标签来描述网页HTML标签HTML标记标签通常被称为H......
  • 《已解决》无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
    原因:Python环境未正确配置:可能你没有将Python添加到系统的环境变量中。你需要手动将Python的安装目录(以及包含 pip.exe 的文件夹)添加到系统的环境变量 PATH 中。 解决:1.找到python的安装目录键盘按下  win键+R键,输入cmd回车。随后输入wherepythonwhere......
  • 前端HTML+CSS
    一、HTML1.什么是html概念:超文本标记性语言(HyperTextMarkupLanguage)--不只是有文本的标签超:超级文本===》不仅仅是普通文本还可以是:文字、图形、动画、声音、表格等。标记性:标记,元素,标签来源:w3c万维网联盟:组织java开源jspython2.作用:制作网页①网页应该......