Django高亮Markdown代碼

###概述css

自從用了markdown寫文檔就愛不釋手, 但是總有點遺憾, 那就是代碼高亮。把代碼塊打扮的好看點也總算對得起代碼。Django要高亮markdown中的代碼確實很簡單, 只須要如下三步(固然前提是要先裝了Django的markup app,使用方法參考 https://docs.djangoproject.com/en/1.4/ref/contrib/markup/)。 本文首先參考了 Django+Markdown+Pygments 實現代碼高亮django 簡易博客開發 5 markdown支持、代碼高亮、gravatar頭像服務 兩篇文章, 將兩個文章中的情景作了下總結。html

###下載Pygements 代碼樣式git

首先能夠到 Pygements 官網查看樣式, 在demo頁面選擇樣式, 而後查看源代碼, 將 /media/pygments_style.css 的代碼拷貝下來存到一個css文件裏便可。github

或者若是以爲麻煩還能夠到 https://github.com/icco/pygments-css 直接下載css。django

可是不論下載哪一個, 都要作個小修改。 對於從demo頁面取下來的代碼,將裏面的 .syntax 替換爲 .codehilite。對於從github下載的樣式,將裏面的 .highlight 替換爲 .codehilite 便可。markdown

###代碼樣式引入HTMLapp

這步簡單, 在模版中添加引入css的代碼便可post

:::Html
<link rel="stylesheet" type="text/css" href="{{URL for your Code Style CSS}}">

###渲染代碼塊code

此處可能涉及到兩種用法,htm

  1. 在代碼中渲染

    :::Python    
     import markdown
    
     md = markdown.Markdown(extensions=['codehilite'])
  2. 在模版中渲染

    :::Django
     {% load markup %}
     {{ post.body|markdown:'codehilite'}}

###總結

pygements會自動識別代碼類別, 若是不放心的話能夠再代碼塊前加上 :::{Language} 指明語言便可。

參考資料:

[1] Django+Markdown+Pygments 實現代碼高亮

[2] django 簡易博客開發 5 markdown支持、代碼高亮、gravatar頭像服務

相關文章
相關標籤/搜索