Escaping - Misaka
优质
小牛编辑
130浏览
2023-12-01
@Lepture 在自己的英文博客中对常见的 Python Markdown 库做了一些测试和对比这里简单地做一下总结。
他介绍到的,知名的 Python Markdown 库就有:
- Misaka: Sundown 的 Python 封装(依赖 CPython)
- Hoedown: Hoedown 的 Python 封装 Misaka 的继承者。
- Discount: Discount 的 Python 封装(依赖 CPython)
- cMarkdown: Python Markdown 库,依靠 C 提升性能(依赖 CPython)
- Markdown: 纯粹的 Markdown 实现,老牌 Python Markdown 库。
- Markdown2: 另一个纯粹的 Markdown 库
- mistune:作者 @Lepture
出于性能考虑,其中 Misaka Hoedown CMarkdown mistune 都是对 C 库的封装,
其中 Misaka 和 mistune 都来自 Sundown,Python 的 Hoedown 库封装自 C 的 Heodown,cMarkdown 来自于 upskirt,
而其 C 语言库 Sundown fork 自 upskirt,Sundown 停止更新后,Hoedown 又 fork 了一份,
因此 Heodown 是最具有活力的那一个,也是 Misaka 的作者所推荐的 Markdown 库。
Markdown 和 Markdown2 则是纯粹的 Python 库,虽然 Markdown2 从名字上看起来比 Markdown 要更新鲜,
而且它也宣称自己比 Markdown 快上一倍,但在 @Lepture 的测试中得出了恰恰相反的结论。
除了性能上,Markdown2 也并没有提供更多的功能。
Mistune 是 @Lepture 自己发布的 Markdown 库,提供与 Misaka 相似的接口,但是在纯 Python 环境中就能达到 Markdown 4 倍的性能,
在 CPython 的帮助下更能提升到 5 倍!
在 @Lepture 的测试中 Discount 则安装失败。
性能测试的结果如下:
Parsing the Markdown Syntax document 1000 times...
Mistune: 12.7255s
Mistune (with Cython): 9.74075s
Misaka: 0.550502s
Markdown: 46.4342s
Markdown2: 78.2267s
cMarkdown: 0.664128s
Discount is not available
测试用的源代码可以在这里获取。
原文:Markdown Parsers in Python—Lepture