Django/Textile/Pygments:“'>正在逃走

2024-06-01 14:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用django写的博客,我正试图添加语法高亮。文章以纺织品标记的形式写入并存储在数据库中。下面是如何通过模板引擎呈现它们:

{{body |纺织品| Pygmetize |安全}}

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

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

我不知道到底是哪个过滤器将转义字符放在那里,也不知道如何阻止它。有什么建议吗?在


Tags: django代码标记引擎模板数据库过滤器html
1条回答
网友
1楼 · 发布于 2024-06-01 14:34:16

不知羞耻地插上插头,我在另一页上回答这个问题: https://stackoverflow.com/a/10138569/1224926

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

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

应该变成:

^{pr2}$

你得到了你所期望的。在

相关问题 更多 >