Как мне отобразить HTML, возвращенный из фильтра в шаблоне django?

#html #django #markdown

#HTML #django #markdown

Вопрос:

У меня есть md-файл, который необходимо преобразовать в html (для веб-сайта блога). Фильтр (markdownify) преобразует md-файл в html-теги. Теперь html-теги отображаются на веб-сайте. Как мне отобразить этот HTML на веб-сайте (в шаблоне django).

Есть ли какой-либо фильтр для этого? Или есть какой-либо другой способ преобразовать md в html в django?

Код ->

 <p>{{ post.body | markdownify }}</p>
  

md-файл ->

 ### h1 header

*jh*

* sdfs
* ksdjfh
*  skdjkfhsk

[link] (#)
  

Вывод на веб-странице:

 h1 header
<em>jh</em>

sdfs
ksdjfh
skdjkfhsk
[link] (#)

  

Ответ №1:

Добавив приведенный ниже код в settings.py решена проблема. Теги HTML теперь не отображаются на отображаемой веб-странице.

 MARKDOWNIFY_WHITELIST_TAGS = {
 'a', 'p', 'h1', 'h2', 'h3','h4', 'h5', 'h6', 'h7', 'ul', 'li', 'span', 'img', 'div', 'abbr', 'acronym', 'em', 'blockquote', 'i', 'strong', 'ol', 'b', 'code'
}
  

Ответ №2:

Может быть, попробовать {{ post.body | markdownify | safe }} . Безопасный фильтр отключает любое дальнейшее экранирование HTML. Подробнее о фильтре читайте в документации Django.

Комментарии:

1. Нет, это не работает. Результат остается тем же. Большое спасибо за ваш ответ!