Django高亮Markdown代码

概述

自从用了markdown写文档就爱不释手, 可是总有点遗憾, 那就是代码高亮。把代码块打扮的好看点也总算对得起代码。Django要高亮markdown中的代码确实很简单, 只需要以下三步(当然前提是要先装了Django的markup app,使用方法参考 https://docs.djangoproject.com/en/1.4/ref/contrib/markup/)。 本文首先参考了 Django+Markdown+Pygments 实现代码高亮 和 django 简易博客开发 5 markdown支持、代码高亮、gravatar头像服务 两篇文章, 将两个文章中的情景做了下总结。

下载Pygements 代码样式

首先可以到 Pygements 官网查看样式, 在demo页面选择样式, 然后查看源代码, 将 /media/pygments_style.css 的代码拷贝下来存到一个css文件里即可。

或者如果觉得麻烦还可以到 https://github.com/icco/pygments-css 直接下载css。

但是不论下载哪个, 都要做个小修改。 对于从demo页面取下来的代码,将里面的 .syntax 替换为 .codehilite。对于从github下载的样式,将里面的 .highlight 替换为 .codehilite 即可。

代码样式引入HTML

这步简单, 在模版中添加引入css的代码即可

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

渲染代码块

此处可能涉及到两种用法,

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

你可能感兴趣的:(django,python,markdown,代码高亮)