Is there a way to parse a text file to output styling of Github Flavored Markdown (GFM) in python 2.7?
这个网站和其他地方有很多例子提供pygments / jinja2语法高亮指南,如下所示:
{% highlight 'python' %}
def testing(x):
print x
{% endhighlight %}
但我想使用markdown格式化我的整个帖子,类似于编写这个问题,然后将其传递给jinja2过滤器以应用样式 . 上面的代码片段只有在我可以预先确定代码块的位置时才会起作用,并将它们分开处理,而不是文本文件的其余部分 .
我发现谷歌维护的代码(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()
,它将采用我的原始帖子体(类似于这篇文章)并添加样式和链接我的喜好?
谢谢你的帮助 .
Stack:Ubuntu 14.04,Python 2.7,Pygments 2.02,Flask 0.10.1,Jinja2,MongoDB 3.0.6
2 回答
python-markdown
库支持可插拔扩展 . 有第三方制作的标准扩展和更多定制扩展 .https://github.com/google/py-gfm
实施Github Flavored Markdown . 将此扩展添加到Python Markdown很简单 .考虑到这似乎有多大的痛苦,我决定将mistune和pygments结合起来给我想要的东西:https://github.com/asottile/markdown-code-blocks
用法非常简单:
该库提供单一功能
您可以使用典型的pygments主题设置输出样式