3

有沒有辦法解析一個文本文件來輸出python 2.7中Github Flavored Markdown(GFM)的樣式?Github Flavored Markdown in Python

有本網站大量的實例和其他地方提供Pygments來做/ Jinja2的語法高亮指南是這樣的:

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

,但我想用類似的降價格式化我的整個後寫這篇問題,然後將其傳遞給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 

與如何分析我的字符串沒有明確的想法/文本文件輸出我需要的東西。

現在,我通過我的文章,以一個名爲降價過濾器:{{ post.body|markdown() }}其中降價的定義:

def markdown(code): 
    from pygments import highlight 
    from pygments.lexers import PythonLexer 
    from pygments.formatters import HtmlFormatter 

    return highlight(code, PythonLexer(), HtmlFormatter()) 

這是我now--但這將整個後像一個代碼塊和亮點根據python的語法規則。是否已經有可用的方法或編寫一個過濾器github_markdown()將採取我的原始帖子正文(類似於這篇文章),並添加樣式和鏈接我想怎麼樣?

感謝您的幫助。

堆棧:Ubuntu的14.04,Python 2.7版,Pygments來做2.02,瓶0.10.1,Jinja2的,MongoDB的3.0.6

回答

0

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

+0

你能指導我如何實現這個嗎? – Jared

+0

當然。首先告訴我你使用的是什麼工具集/環境。這是直線型的Python嗎?或者你在使用Mkdocs還是類似的doco包;要麼 ? –

+0

平原蟒蛇。我在我的數據庫中存儲了一篇文章,並且希望將此降價功能(使用正確的擴展名)應用於它。然後,我將存儲風格化的帖子和原始帖子,以供將來在數據庫中編輯。 – Jared

0

給多少痛苦,這似乎是的,我已經決定要結合mistunepygments給我我想要的東西:https://github.com/asottile/markdown-code-blocks

的使用是非常簡單的:

pip install markdown-code-blocks 

的庫提供單一功能

markdown_code_blocks.highlight(markdown_s) 

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