markdown库简介

Python的markdown库流行的有两个,python-markdownpython-markdown2,看名字可以猜出来markdown2要比markdown新,是的,而且Github上的star数量也是markdown2比较多。还有一个重要问题就是,markdown不支持三个反引号包裹的代码块,想要书写代码块,只能缩进一个Tab或者四个空格,非常不方便,所以,我推荐使用python-markdown2。至于这两个哪个更快,我没有做专门测试,但markdown2作者说自己更快,谁知道呢,需要自己做一个详细测试。

python-markdown

首先需要安装python-markdown库,

pip install markdown

在你的代码中这样使用:

import markdown
md = markdown.Markdown()
html = md.convert("# 一级标题")

python-markdown2

首先需要安装python-markdown2库,

pip install markdown2

在你的代码中这样使用:

import markdown2
html = markdown2.markdown("# 一级标题")

这时候如果插入代码块,是没有高亮效果的,怎么样才能得到高亮效果呢?请继续看下面。


用Pygments美化你的代码块

Pygments是Python上的高亮代码块的通用库,支持很多种语言的代码,具体多少种呢?管它呢,反正很好用。说白了它就是一个css主题。
python-markdown和python-markdown2都支持Pygments语法高亮,并且它们都依赖于Pygments库。

使用方法

  • 先去选个好看的颜色,http://pygments.org/demo/440022/,在右侧的Use this style:处选择,我是用的monokai
  • 查看这个页面的源代码,把pygments.css弄出来
  • pygments.css中的.syntax全部替换成.codehilite,然后在你的网页中引用
  • 还要小改一下你的python代码
  • python-markdown:html = markdown2.markdown(markdown_text, extras=["fenced-code-blocks"]) (extras的名字是固定的,和css中的codehilite是对应的)
  • python-markdown2:html = markdown.Markdown(extensions=['codehilite']).convert(markdown_text) (extensions的名字是固定的,和css中的codehilite是对应的)

大功告成,赶快去爽一下吧!