夜猫的个人小站

       继续码起来

关于作者

微博北极熊硬糖
北京海淀区

网站建设第一天# 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.

  1. This is the first list item.
  2. 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'])

刷新前台,显示代码已经高亮。

最新评论

发表评论
回到顶部