Django+Markdown+Pygments 支持Markdown 实现代码高亮
2015-10-10 22:21
573 查看
Markdown部分
安装markdownpip install markdown
在
view.py中导入包
from markdown import markdown
使用
markdown()将需要用markdown格式解析的内容(字符串)封装起来。 注:models里面有一个Article类,Article里面有一项是content存储博客内容。
def detail(request, id): try: post = Article.objects.get(id=str(id)) #for markdown test post.content = markdown(post.content) except Article.DoesNotExist: raise Http404 return render(request, 'post.html', {'post' : post})
在后台编辑博文
> ## This is a test.
>
> 1. This is the first list item.
> 2. This is the second list item.
前台显示
{{ post.content | safe}},注意使用了safe过滤器,防止内容在输出前被解析。
ps:和这个问题是一个原因,django数据库里Html代码,如何在前台让浏览器正确解析?
完
Pygments部分
官网下载最新的版本的Pygments。使用
pip安装下载的包
Pygments-2.0.2.tar.gz,敲命令
pip install Pygments-2.0.2.tar。
运行如下命令
pygmentize -S default -f html -a .codehilite > code.css,在文件夹下会发现生成了code.css文件,将这个css文件加入到你的static文件夹下style里面(随便你放哪里找得到就好)。
在需要高亮的html文件里面导入刚刚生成的css文件,例如我的是
<link type="text/css" rel="stylesheet" href="{{ STATIC_URL }}styles/code.css"/>。
还记得刚刚代码里面的
post.content = markdown(post.content)吧,在后面加上
['codehilite'],即为
post.content = markdown(post.content,['codehilite'])。
刷新前台,显示代码已经高亮。
完
相关文章推荐
- Java基础知识强化之IO流笔记36:InputStreamReader/OutputStreamWriter 复制文本文件案例
- Java的序列化与反序列化
- J360-cloud SpringCloud系列二:服务发现Discovery Service
- leetcode之H-Index
- c++ primer学习笔记6_标准库string
- 笔试题——编写java程序:输入一个字符串,判断有几个英文字母,有几个数字,有几个其它的字符
- 各种排序算法的分析与实现(C++版)
- [Django入门知识浅介]用Django实现动态URL
- pyQt4 for mac 安装
- 离线安装eclipse的Maven插件
- c++ primer学习笔记5_复合类型续2
- JavaBean
- c++类与c struct的区别
- Java反射机制
- Wampservice localhost和phpmyadmin打不开
- How to Install PyQt4 on OS X
- grads 绘制仿matlab色标效果
- Java异常分析
- hdoj 2029 Palindromes _easy version C++
- 《代码阅读方法与实践》读书笔记一