有人知道可行的 Python GFM 实现吗?
目前我正在使用 javascript 渲染器。 它可以工作,但真正的 Python 渲染器才是完成这项工作的正确工具。 (FS 是 Django 应用程序)
相关代码 --> https://github.com/freedomsponsors/www.freedomsponsors.org/blob/master/djangoproject/core/models.py (参见 IssueComment.toHTML)
语法突出显示是一个优点。
GitHub 使用 Redcarpet,它实际上是 github 为 Sundown 构建的 Ruby 绑定。
Python 中有一个名为 Misaka 的 Sundown 绑定。如果你想要更接近 github 使用的渲染器但在 Python 中的东西,你可以从那里开始。
对于代码突出显示,您可以使用 Pygments 与 Misaka。
Python-Markdown 加 py-gfm 似乎效果很好。它的优点是在 Python 生态系统中实现了一定程度的标准化 - Python-Markdown 的多个扩展可用,然后可以在 Python-Markdown 之上构建其他软件包(如 django_markdown)并从其扩展中受益。
如果对其他人有帮助,我只想要 Github 防护代码语法,例如
```python
def hello():
print('this should be rendered properly')
```
Python Markdown 实际上附带了一个扩展来执行此操作,该扩展已称为 Fenced Code Blocks,效果很好。
你就这样称呼它:
page_content = markdown.markdown(source, extensions=[FencedCodeExtension()])
Grip 也很酷,可以完成工作。
Python 有自己的标记语言,与 Markdown 非常相似:http://docutils.sourceforge.net/rst.html
cmarkgfm
包提供Python绑定到GitHub的cmark分支,以便“渲染符合GitHub的要求,因为这个包包装了GitHub自己的C解析器和序列化器”(根据pycmarkgfm
包,它是非常相似,但最近维护得较少)。