使用Django中的Markdown和Pygments突出显示语法

Dan*_*elb 5 django markdown pygments

我一直在尝试使用Markdown(2.0.1)和Pygments(1.0)在我的简单Django(1.1)测试应用程序中使用语法高亮.我们的想法是从用户输入生成HTML,这些输入采用markdown格式并存储在DB中,因此我不必在获取期间对html转换进行降价.

到目前为止,我有降价处理工作,但我似乎无法使语法高亮显示工作.我的models.py看起来像这样:

from django.db import models
from django.contrib import admin
from markdown import markdown

class BlogPost( models.Model ):
    title = models.CharField( max_length = 150 )
    body = models.TextField()
    body_html = models.TextField(editable=False, blank=True, null=True)
    timestamp = models.DateTimeField()

    def save(self):
        self.body_html = markdown(self.body, ['codehilite'])
        super( BlogPost, self).save()

    class Meta:
        ordering = ( '-timestamp', )

class BlogPostAdmin( admin.ModelAdmin ):
    list_display = ( 'title', 'timestamp' )

admin.site.register(BlogPost, BlogPostAdmin)
Run Code Online (Sandbox Code Playgroud)

到目前为止只测试markdown语法有效,但如果我尝试类似下面的内容,我在输出或输出源中看不到任何语法高亮:

   :::python
   from foo import bar
   foobar = bar('foo')
Run Code Online (Sandbox Code Playgroud)

我希望在输出源中至少看到一组代码元素.

Dan*_*elb 3

修复!代码应该缩进四个空格而不是三个!

在提出问题之前,我进行了多次编辑来测试这一点,但 Firefox 似乎将该页面缓存为测试帖子。由于我一直使用 Windows 键盘快捷键来强制页面重新加载,而不是 Mac 键盘快捷键,哦!

当我出于对四个空格缩进的沮丧而制作了一个新的测试帖子,然后检查页面源代码时,我发现它正在工作。