有没有一种方法可以在Python 2.7中解析文本文件,以输出Github Flavored Markdown(GFM)的样式?
这个网站和其他地方有很多示例提供pygments / jinja2语法突出显示指南,例如:
{% highlight 'python' %}
def testing(x):
print x
{% endhighlight %}
但我希望使用类似编写此问题并将其传递给jinja2过滤器以应用样式的markdown格式化整篇文章。如果我能预先确定代码块的位置并将它们与文本文件的其余部分分开处理,那么上面的片段只会起作用。
我发现谷歌维护的代码(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
markdown.markdown(some_text, extensions=[MyExtension(), 'path.to.my.ext', 'markdown.extensions.footnotes'])
。Google仓库已安装,但如果我运行markdown.markdown('Testing', extensions=[gfm])
,则会出现错误Extension "__builtin__.module" must be of type: "markdown.Extension"
。 - Jared