Welcome 微信登录

首页 / 操作系统 / Linux / 让Markdown支持Django1.6及代码语法高亮

Django项目升级到1.6后,发现django.contrib.markup已经被移除了,其实早在1.5就不推荐使用,标记为了deprecated.如果想让的markdown语法能继续正常使用的话,你可以自定义一个过滤器.#my_markup.pymport markdownfrom django import templatefrom django.template.defaultfilters import stringfilterfrom django.utils.encoding import force_unicodefrom django.utils.safestring import mark_saferegister = template.Library()@register.filter(is_safe=True)@stringfilterdef my_markdown(value):extensions = ["nl2br", ]return mark_safe(markdown.markdown(force_unicode(value), extensions, safe_mode=True, enable_attributes=False))保存在app的templatetags目录下面,在模板中加载就行了.{% load my_markup %}{{ value|my_markdown }}--------------------------------------分割线 --------------------------------------由于Django1.6默认不支持markdown了,所以需要自己写过滤器。现在遇到一个新的麻烦是,代码块默认情况下没有任何高亮显示,看起来非常的单调。因此今天研究了一番。python的markdown模块功能很完善,亮点是它还能支持扩展插件,CodeHilite就是用来做代码高亮扩展功能的。使用非常简单,def md1(value):extensions = ["nl2br", "codehilite"]return mark_safe(markdown.markdown(force_unicode(value), extensions, safe_mode=True, enable_attributes=False))其实就是把codehilite加入到extensions列表中去就可以了,此时由markdown渲染后文件的代码块所在的div标签会多了一个class属性class="codehilite"。但是事情还没完。代码还没有真正加上高亮。真正的高亮功能是由Pygments来完成的。因此还要安装Pygments,安装方式也非常简单pip install pygments如果你人品和我一样差的话,需要去 Bitbucket下载他的源码才能完成安装。下载下来解压执行:python setup.py install顺利安装完成后,还缺少一样东西,既然是代码高亮的话,肯定是有CSS来驱动的,pygments默认是不带样式的。不过你可以借助它生成一个默认的css。E:>pygmentize -S default -f html > default.css把default.css放到项目中去,此时就能看到高亮代码了。如果你不喜欢这个样式的话,pygments-css提供了很多样式供你选择。Django1.8返回json字符串和接收post的json字符串内容  http://www.linuxidc.com/Linux/2015-07/120226.htm如何使用 Docker 组件开发 Django 项目?  http://www.linuxidc.com/Linux/2015-07/119961.htmUbuntu Server 12.04 安装Nginx+uWSGI+Django环境 http://www.linuxidc.com/Linux/2012-05/60639.htm Django+Nginx+uWSGI 部署 http://www.linuxidc.com/Linux/2013-02/79862.htm Django实战教程 http://www.linuxidc.com/Linux/2013-09/90277.htm Django Python MySQL Linux 开发环境搭建 http://www.linuxidc.com/Linux/2013-09/90638.htm Django 的详细介绍:请点这里
Django 的下载地址:请点这里本文永久更新链接地址