Джанго / Текстиль / Пигменты: "'> сбежал - PullRequest
1 голос
/ 04 февраля 2011

У меня есть блог, написанный на django, к которому я пытаюсь добавить подсветку синтаксиса.Посты записываются и хранятся в базе данных в виде текстовой разметки.Вот как они должны отображаться с помощью шаблонизатора:

{{body | textile | pygmentize | safe}}

Он правильно отображает весь HTML-код и код выделяется, но некоторыесимволы в блоках кода экранируются.В частности, двойные кавычки, одинарные кавычки и знаки «больше».

Вот фильтр Pygments, который я использую: http://djangosnippets.org/snippets/416/

Я не уверен, какой фильтр на самом деле помещает экранированные символы вили как это остановить.Есть предложения?

1 Ответ

0 голосов
/ 10 мая 2012

бесстыдный плагин, отвечая мне на другой странице: https://stackoverflow.com/a/10138569/1224926

проблема в Beautifulsoup (справедливо) предполагает, что код небезопасен.но если вы разберете это в дерево и передадите это, это сработает.Таким образом, ваша строка:

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

должна стать:

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

, и вы получите то, что ожидаете.

...