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头像服务

相关文章
相关标签/搜索