【技术博客】利用Python将markdown文档转为html文档

利用Python将markdown文档转为html文档

v1.0

作者:FZK


元素简单的md文件

Python中自带有一个markdown库,你可以直接这样使用

md_file = open("file.md","r",encoding='utf-8')
txt = md_file.read()
html = markdown.Markdown(txt)

较为复杂的md文件

由于我们需要转化的md文件比较复杂,存在表格、MathJax公式(latex中所用的公式)等复杂元素的时候,这种方式就不能完全转化。需要使用另一个py库:
pip install python-markdown-math
具体代码如下:

import markdown
from mdx_math import MathExtension

html_head_file = open("html_head.txt","r",encoding='utf-8')
html_head = html_head_file.read()
html_head_file.close()

html_tail = "\n</body>\n</html>"
html_body = ""

html_body_file = open("file.md","r",encoding='utf-8')
html_body_txt = html_body_file.read()
html_body_file.close()

# 所支持的复杂元素
exts = ['markdown.extensions.extra', 'markdown.extensions.codehilite','markdown.extensions.tables','markdown.extensions.toc',MathExtension(enable_dollar_delimiter=True)]

md = markdown.Markdown(extensions = exts)
html_body = md.convert(html_body_txt)

html = html_head + html_body + html_tail
html_file = open("file.html","w",encoding='utf-8')
html_file.write(html)
html_file.close()

其中html_head_file包含对MathJax的支持,以及样式的优化(我们使用了github中的md样式戳链接)

<!DOCTYPE html>
<html lang="zh-cn">
<head>
<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-MML-AM_CHTML' async></script>
<meta content="text/html; charset=utf-8" http-equiv="content-type" />
<link href="github.css" rel="stylesheet">
</head>

<body>

效果:

posted @ 2019-06-17 17:41  WhatAHardChoice  阅读(2098)  评论(0编辑  收藏  举报