Я использую Django для проекта, и у вас будет следующее отображение Markdown:
{{ page.text | escape | markdown | safe }}
Предполагая, что page.text
содержит <embed>
, который вы показываете в своем вопросе , ваша проблема заключается в использовании фильтра escape
.
Его задача - избежать кода HTML, который включает преобразование <
в <
и >
в >
, как вы видите. После того как это преобразование будет выполнено, ни фильтр markdown
, ни фильтр safe
не вернут его обратно.
Нет смысла использовать escape
, а затем safe
, поскольку safe
просто предотвращает автоматическое экранирование.
Правильное решение зависит от источника вашего page.text
. Если вы доверяете этому источнику, вы можете убрать escape
из своего шаблона. Обратите внимание, что этот действительно открывает дверь для проблем безопасности со стороны злонамеренных пользователей или случайного неправильного использования, например, межсайтового скриптинга .
Если вы не доверяйте источнику, у вас есть два основных варианта: