1. 前言
现在markdown已经是非常常用的记录工具了,整齐的排版、代码高亮、图片表格样样齐全,同时也支持html标签,是非常好用的一种工具(语法)。
那么今天来分享一下使用python实现markdown文件转为html,而且也能很好显示代码和整齐的排版。
2. 正文
markdown
python-markdown-math
markdown_checklist
pymdown-extensions
本文的主要功能是讲markdown转为html,在上述博客中还带有转换为pdf的功能,但个人觉得转为pdf没什么必要,在此就没添加上了。除此之外,在原有的基础上添加了文章目录的小模块,算是一点小小的改进吧。
这里就直接上代码了>>>
import os
try:
from markdown import markdown
except ModuleNotFoundError as e:
os.system("pip install markdown")
os.system("pip install python-markdown-math")
os.system("pip install markdown_checklist")
from markdown import markdown
try:
from pymdownx import superfences
except ModuleNotFoundError as e:
os.system("pip install pymdown-extensions")
from pymdownx import superfences
class mdtox:
def __init__(self, md_filename, encoding='utf-8'):
self.md_filename = md_filename
self.encoding = encoding
self.__args()
def __args(self):
self.html = '''
{}
{}
'''
# 扩展配置
self.extensions = [
'toc', # 目录,[toc]
'extra', # 缩写词、属性列表、释义列表、围栏式代码块、脚注、在HTML的Markdown、表格
]
third_party_extensions = [
'mdx_math', # KaTeX数学公式,$E=mc^2$和$$E=mc^2$$
'markdown_checklist.extension', # checklist,- [ ]和- [x]
'pymdownx.magiclink', # 自动转超链接,
'pymdownx.caret', # 上标下标,
'pymdownx.superfences', # 多种块功能允许嵌套,各种图表
'pymdownx.betterem', # 改善强调的处理(粗体和斜体)
'pymdownx.mark', # 亮色突出文本
'pymdownx.highlight', # 高亮显示代码
'pymdownx.tasklist', # 任务列表
'pymdownx.tilde', # 删除线
]
self.extensions.extend(third_party_extensions)
self.extension_configs = {
'mdx_math': {
'enable_dollar_delimiter': True # 允许单个$
},
'pymdownx.superfences': {
"custom_fences": [
{
'name': 'mermaid', # 开启流程图等图
'class': 'mermaid',
'format': superfences.fence_div_format
}
]
},
'pymdownx.highlight': {
'linenums': True, # 显示行号
'linenums_style': 'pymdownx-inline' # 代码和行号分开
},
'pymdownx.tasklist': {
'clickable_checkbox': True, # 任务列表可点击
}
}
def to_html(self, html_name):
try:
with open(self.md_filename, "r", encoding=self.encoding) as file_md:
md_text = file_md.read()
except Exception as e:
print("", e)
return False
title = '.'.join(os.path.basename(self.md_filename).split('.')[:-1])
html_text = markdown(md_text, output_format='html', extensions=self.extensions, extension_configs=self.extension_configs) # MarkDown转HTML
self.html = self.html.format(title, html_text)
try:
with open(html_name, 'w', encoding=self.encoding) as file_html:
file_html.write(self.html)
except Exception as e:
print("", e)
return False
return True
这里我封装了下载依赖库,所以只要运行python代码即可。其中的js文件、css文件都在我的博客文件中,所以只要有网都可以轻松访问生成的html文件,若想离线使用,就把需要的文件下载到本地,然后引入即可。
本测试与上述代码在同个文件中
if __name__ == '__main__':
md_name = "E:/java.md"
html_name = "E:/java.html"
if(mdtox(md_name).to_html(html_name)):
print('转换完成')
Original: https://www.cnblogs.com/bpf-1024/p/14118167.html
Author: 步平凡
Title: 用python实现markdown转html
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/613095/
转载文章受原作者版权保护。转载请注明原作者出处!