网站建设第一天# django+markdown+pygment高亮代码
标签
django+markdown+pygment高亮代码
参考(http://wiki.jikexueyuan.com/project/django-set-up-blog/markdown.html)
我这里是在django后台直接将文本markdown化,而不是在html里通过过滤标签的方法处理。过滤标签方法可以参考上面的链接。
1. 首先需要安装markdown
sudo pip install markdown
在你需要高亮代码的内容,经过markdown处理就行
import markdown from django.utils.safestring import mark_safe def detail(request,article_id): user = request.user if request.user.is_authenticated() else None article=get_object_or_404(Article,id=(article_id)) #article.content=markdown.markdown(article.content,['codehilite']) article.content=mark_safe(markdown.markdown(article.content, extensions = ['markdown.extensions.fenced_code', 'markdown.extensions.codehilite'], safe_mode=True, enable_attributes=False))
2. 在后台使用markdown格式编辑博文
This is a test.
- This is the first list item.
- This is the second list item.
print x,y
注意代码要用四个空格,可以使用代码端前加```python 末尾加```方法标注语言,效果更好
例如
```python
print x
```
templates html文件中使用 {{ post.content|safe}},注意使用了safe过滤器,防止内容在输出前被解析。
此时还不能高亮需要下一步
3. pygments部分
sudo pip install pygments
运行如下命令
pygmentize -S default -f html -a .codehilite > code.css
在文件夹下会发现生成了code.css文件,将这个css文件加入到你的static文件夹下csss里面(随便你放哪里找得到就好)。在需要高亮的html文件里面导入刚刚生成的css文件,例如我的是
<link type="text/css" rel="stylesheet" href="{{ STATIC_URL }}styles/code.css"/>。
也可去Github项目官方网址下载任意一css文件,记得文件内样式名开头都为 .codehilite, 如果不是修改过来。pygments-css
还记得刚刚代码里面的post.content = markdown(post.content) 吧,在后面加上['codehilite'],即为
post.content = markdown(post.content,['codehilite'])
刷新前台,显示代码已经高亮。
完
最新评论