Mistune中文指导文档
Mistune
Mistune开源地址:https://github.com/lepture/mistune
一个纯python的markdown快速解析器,灵感源于marked
特性
- 纯Python开发,在Python2.7、python3.5+ 、PyPy上测试通过
- 它是目前最快纯Python MarkDown解析器
- 超多插件支持,Table, footnotes, autolink, fenced code 等.
安装
$ pip install mistune
基本操作
- 简单渲染
import mistune
mistune.markdown('I am using **mistune markdown parser**')
# 输出: <p>I am using <strong>mistune markdown parser</strong></p>
- 如果比较关心性能,则需要通过创建实例的方法来应用
import mistune
markdown = mistune.Markdown()
markdown('I am using **mistune markdown parser**')
Mistune默认开启了所有的特性,如果你需要自定义配置,可以通过参数设置。
配置参数
以下是渲染输出页面的一些参数
mistune.Renderer:
renderer = mistune.Renderer(escape=True, hard_wrap=True)
# use this renderer instance
markdown = mistune.Markdown(renderer=renderer)
markdown(text)
- escape: 设置未false,则所有的HTML将不会被转义.
- hard_wrap: 设置为True,它将支持GFM换行特性。所有的新行将被替换为
tag - use_xhtml: 如果设置为True,所有的标签必须符合xhtml规范, 例如:
. - parse_block_html: 仅在块级别HTML中分析文本
- parse_inline_html: 仅在内联级别HTML中分析文本
使用默认的解析器,可以用如下方法:
mistune.markdown(text, escape=True, hard_wrap=True)
markdown = mistune.Markdown(escape=True, hard_wrap=True)
markdown(text)
渲染器
像misaka/sundown一样,您可以通过自定义渲染器影响渲染。您所需要做的就是对渲染器类进行子类化。
- 下面是一个简单的代码高亮的例子
import mistune
from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import html
class HighlightRenderer(mistune.Renderer):
def block_code(self, code, lang):
if not lang:
return '\n<pre><code>%s</code></pre>\n' % \
mistune.escape(code)
lexer = get_lexer_by_name(lang, stripall=True)
formatter = html.HtmlFormatter()
return highlight(code, lexer, formatter)
renderer = HighlightRenderer()
markdown = mistune.Markdown(renderer=renderer)
print(markdown('```python\nassert 1 == 1\n```'))
作者本身写了更多的渲染器,可在mistune-contrib查找
作者微信:bianbingdang。转载请注明,变饼档博客