1

構文の強調表示を追加しようとしている django で書かれたブログがあります。投稿はテキスタイル マークアップとして書き込まれ、データベースに保存されます。テンプレートエンジンを介してレンダリングされる方法は次のとおりです。

{{本体|テキスタイル|顔料化|安全}}

すべての HTML が正しくレンダリングされ、コードが強調表示されますが、コード ブロック内の一部の文字がエスケープされています。具体的には、二重引用符、一重引用符、大なり記号です。

これが私が使用している Pygments フィルターです: http://djangosnippets.org/snippets/416/

どのフィルターが実際にエスケープされた文字をそこに入れているのか、それを止める方法がわかりません。助言がありますか?

4

1 に答える 1

0

別のページでこれに答える恥知らずなプラグイン: https://stackoverflow.com/a/10138569/1224926

問題はbeautifulsoupです(当然のことながら)コードが安全でないと想定しています。しかし、それをツリーに解析して渡すと、機能します。だからあなたの行:

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

なる必要があります:

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

そして、あなたはあなたが期待するものを手に入れます。

于 2012-05-10T07:41:34.770 に答える