【问题标题】:Django/Textile/Pygments: " ' > being escapedDjango/Textile/Pygments: " ' > 被转义
【发布时间】:2011-06-21 01:26:10
【问题描述】:

我有一个用 django 编写的博客,我正在尝试添加语法高亮。这些帖子作为纺织品标记写入并存储在数据库中。以下是它们应该如何通过模板引擎呈现:

{{ body|textile|pygmentize|safe }}

它正确呈现所有 HTML 并且代码被突出显示,但是代码块中的一些字符被转义。特别是双引号、单引号和大于号。

这是我正在使用的 Pygments 过滤器:http://djangosnippets.org/snippets/416/

我不确定哪个过滤器实际上将转义字符放入其中或如何阻止它。有什么建议吗?

【问题讨论】:

    标签: python django pygments


    【解决方案1】:

    无耻插入我在另一个页面上回答这个问题: https://stackoverflow.com/a/10138569/1224926

    问题是beautifulsoup(正确地)假设代码不安全。但是如果你把它解析成一棵树,然后把它传递进去,它就可以工作了。所以你的线:

    code.replaceWith(highlight(code.string, lexer, HtmlFormatter()))
    

    应该变成:

    code.replaceWith(BeautifulSoup(highlight(code.string, lexer, HtmlFormatter())))
    

    你会得到你所期望的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-22
      • 2022-06-23
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 2011-06-24
      • 2011-08-08
      相关资源
      最近更新 更多