markdown mysql高亮_让Markdown支持Django1.6及代码语法高亮

Django项目升级到1.6后,发现django.contrib.markup已经被移除了,其实早在1.5就不推荐使用,标记为了deprecated.如果想让的markdown语法能继续正常使用的话,你可以自定义一个过滤器.

#my_markup.py

mport markdown

from django import template

from django.template.defaultfilters import stringfilter

from django.utils.encoding import force_unicode

from django.utils.safestring import mark_safe

register = template.Library()

@register.filter(is_safe=True)

@stringfilter

def 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提供了很多样式供你选择。

Django 的详细介绍:请点这里

Django 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值