###概述
自从用了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}}">
###渲染代码块
此处可能涉及到两种用法,
-
在代码中渲染
:::Python import markdown md = markdown.Markdown(extensions=['codehilite'])
-
在模版中渲染
:::Django {% load markup %} {{ post.body|markdown:'codehilite'}}
###总结
pygements会自动识别代码类别, 如果不放心的话可以再代码块前加上 :::{Language}
指明语言即可。
参考资料:
[1] Django+Markdown+Pygments 实现代码高亮
[2] django 简易博客开发 5 markdown支持、代码高亮、gravatar头像服务