使用Python Markdown 生成 html

python基础

浏览数:103

2019-4-27

越来越喜欢使用markdown编写文档,相对doc更简单方便,而且可以渲染输出自己喜欢的样式。
开发过程中编写的文档markdown方便svn、git等版本控制工具管理。

安装 Python-Markdown ,做markdown to html的语法转换

pip install markdown

安装 Pygments 做语法高亮

pip install Pygments

执行下面的命令,生成一个默认的语法高亮css文件,更多可以参考Pygments项目网站

pygmentize -S default -f html > default.css

当前使用的github风格的样式表,代码在这里 ,下载保存为github.css。

完整代码:

# -*- coding: utf-8 

import markdown
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')

def md2html(mdstr):
    exts = ['markdown.extensions.extra', 'markdown.extensions.codehilite','markdown.extensions.tables','markdown.extensions.toc']

    html = '''
    <html lang="zh-cn">
    <head>
    <meta content="text/html; charset=utf-8" http-equiv="content-type" />
    <link href="default.css" rel="stylesheet">
    <link href="github.css" rel="stylesheet">
    </head>
    <body>
    %s
    </body>
    </html>
    '''

    ret = markdown.markdown(mdstr,extensions=exts)
    return html % ret



if __name__ == '__main__':

    if len(sys.argv) < 3:
        print('usage: md2html source_filename target_file')
        sys.exit()

    infile = open(sys.argv[1],'r')
    md = infile.read()
    infile.close()

    
    if os.path.exists(sys.argv[2]):
        os.remove(sys.argv[2])


    outfile = open(sys.argv[2],'a')
    outfile.write(md2html(md))
    outfile.close()

    print('convert %s to %s success!'%(sys.argv[1],sys.argv[2]))

将上的代码保存为 md2html.py,然后执行

python md2html.py test.md test.html

作者:老鹰