Py学习  »  Django

[精华] Django+Markdown+Pygments 实现代码高亮

Py站长 • 10 年前 • 17182 次点击  

1. 安装软件

安装Python-Markdown 和 Pygments

Pygments是Python语言写的语法高亮工具,非常棒!主页是http://pygments.org/

2. 创建.css 文件

大家可以到 https://github.com/icco/pygments-css 上下载自己喜欢的高亮语法.css文件。

本社区采用的是 friendly.css

将该文件中的.highlight全文替换成.codehilite

如下图:

在你的HTML页面加上.css的链接,例如本社区的代码是:

<link type="text/css" rel="stylesheet" href="{{ STATIC_URL }}conanvex/styles/friendly.css"/>

3. 页面渲染时使用 markdown 的 codehilite 来渲染

import markdown

ret = markdown.markdown(code, ['codehilite'])

这个地方返回的ret就是生成的HTML代码,例如本社区的生成代码是:

最后

经过以上三步,就可以在你的HTML页面显示高亮代码啦!

最后,想说明一个问题是,python-markdown的codehilite 并没有默认语言选项,但它可以"猜"代码格式。python-markdown作者给出关于该问题的两个建议,可见 https://github.com/waylan/Python-Markdown/issues/26

支持的 语言各类有 http://pygments.org/docs/lexers/

本文主要参考:http://ikeepu.com/bar/10506174

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/206
 
17182 次点击  
文章 [ 3 ]  |  最新文章 9 年前
Py站长
Reply   •   1 楼
Py站长    9 年前

@wangyu190810 是个处理函数,对页面的内容进行markdown化的

wangyu190810
Reply   •   2 楼
wangyu190810    9 年前

你的code高亮实现

enter code hereimport markdown 
enter code hereret = markdown.markdown(code, ['codehilite'])

这个是文件是放在哪里的??我现在想要给网站代码高亮

木头lbj
Reply   •   3 楼
木头lbj    10 年前

支持!