簡體   English   中英

Python中的Github Flavored Markdown

[英]Github Flavored Markdown in Python

有沒有辦法解析文本文件以在python 2.7中輸出Github Flavored Markdown(GFM)的樣式?

這個網站和其他地方有很多例子提供pygments / jinja2語法高亮指南,如下所示:

{% highlight 'python' %}
def testing(x):
    print x
{% endhighlight %}

但我想使用markdown格式化我的整個帖子,類似於編寫這個問題,然后將其傳遞給jinja2過濾器以應用樣式。 上面的代碼片段只有在我可以預先確定代碼塊的位置時才會起作用,並將它們分開處理,而不是文本文件的其余部分。

我發現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() ,它將采用我的原始帖子體(類似於這篇文章)並添加樣式和鏈接我的喜好?

謝謝你的幫助。

Stack:Ubuntu 14.04,Python 2.7,Pygments 2.02,Flask 0.10.1,Jinja2,MongoDB 3.0.6

python-markdown庫支持可插入擴展。 有第三方制作的標准擴展和更多定制擴展。 https://github.com/google/py-gfm實現了Github Flavored Markdown。 將此擴展添加到Python Markdown很簡單。

鑒於這似乎有多大的痛苦,我決定將mistunepygments結合起來給我想要的東西: https//github.com/asottile/markdown-code-blocks

用法非常簡單:

pip install markdown-code-blocks

該庫提供單一功能

markdown_code_blocks.highlight(markdown_s)

您可以使用典型的pygments主題設置輸出樣式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM