2011-02-03 40 views
1

我有一個用django編寫的博客,我試圖添加語法高亮顯示,這些博文是作爲紡織品標記寫入和存儲在數據庫中的。通過模板引擎來渲染:{|紡織| pygmentize | {體安全}}Django/Textile/Pygments:「'>正在逃跑

它正確呈現所有的HTML和代碼被強調,但代碼塊中的某些字符轉義具體雙引號,單引號和大於號。

這是我正在使用的Pygments過濾器:http://djangosnippets.org/snippets/416/

我不確定哪個過濾器實際上將轉義字符放在那裏,或者如何使其停止。有什麼建議麼?

回答

0

無恥插頭我另一頁上回答這個問題: https://stackoverflow.com/a/10138569/1224926

問題是beautifulsoup(正確地)假設代碼是不安全的。但是如果你把它解析成一棵樹,並通過它,它就可以工作。所以,你行:

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

應該變成:

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

,你會得到你所期望的。