zoukankan      html  css  js  c++  java
  • 【技术博客】利用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 = "
    </body>
    </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>
    

    效果:

  • 相关阅读:
    [杂题笔记]2021.08.18-2021.09.03,CF#741 Div.2&CF#736 Div.2&CF Global Round15&CF#739 Div3
    第一次博客作业
    《博弈论》
    迭代法-二分迭代求解低阶线性方程
    迭代法-牛顿迭代法
    logback扩展日志输出功能
    log4j2扩展日志输出功能
    c# clr创建mssql的存储过程、函数
    驰骋BPM,工作流
    Docker部署RocketMQ踩坑记录
  • 原文地址:https://www.cnblogs.com/hardchoice/p/11041139.html
Copyright © 2011-2022 走看看