【发布时间】:2015-12-02 04:58:15
【问题描述】:
有没有办法在 python 2.7 中解析文本文件以输出 Github Flavored Markdown (GFM) 的样式?
在这个网站和其他地方有很多示例提供 pygments/jinja2 语法高亮指南,如下所示:
{% highlight 'python' %}
def testing(x):
print x
{% endhighlight %}
但我想使用类似于编写此问题的降价来格式化我的整个帖子,然后将其传递给 jinja2 过滤器以应用样式。只有当我可以预先确定代码块的位置并将它们与文本文件的其余部分分开处理时,上面的 sn-p 才会起作用。
我找到了由 Google (https://github.com/google/py-gfm) 维护的代码,我认为这是正确的,但我只有这些扩展:
In [10]: gfm.
gfm.AutolinkExtension gfm.SpacedLinkExtension gfm.hidden_hilite
gfm.AutomailExtension gfm.StrikethroughExtension gfm.semi_sane_lists
gfm.HiddenHiliteExtension gfm.autolink gfm.spaced_link
gfm.SemiSaneListExtension gfm.automail gfm.strikethrough
不清楚如何解析我的字符串/文本文件以输出我需要的内容。
现在,我将我的帖子传递给一个名为 markdown 的过滤器:{{ post.body|markdown() }},其中定义了 markdown:
def markdown(code):
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
return highlight(code, PythonLexer(), HtmlFormatter())
这就是我现在所处的位置——但这会将整个帖子视为一个代码块,并根据 python 的语法规则突出显示。是否有可用的方法或编写过滤器github_markdown() 的方法,它将获取我的原始帖子正文(类似于此帖子)并添加我想要的样式和链接?
感谢您的帮助。
堆栈:Ubuntu 14.04、Python 2.7、Pygments 2.02、Flask 0.10.1、Jinja2、MongoDB 3.0.6
【问题讨论】:
标签: python markdown syntax-highlighting jinja2 github-flavored-markdown