Рендеринг текста Markdown2 в виде строки с помощью Python и Django

Я работаю над проектом, который принимает страницу в формате markdown и преобразует ее в HTML перед вставкой в нужный документ. Вот код, который я выполняю

Python

def markdown(request, entry):
pathOfFile = "entries/" + entry + ".md"
return render(request, "encyclopedia/entry.html", {
    "html_markdown": markdown2.markdown_path(pathOfFile)
})

HTML

{% block body %}
<div>
    {{ html_markdown }}
</div>
{% endblock %}

И вот что возвращается на веб-страницу

<h1>CSS</h1> <p>CSS is a language that can be used to add style to an <a href="/wiki/HTML">HTML</a> page.</p>

Когда я просматриваю источник страницы, HTML заключен в кавычки. Проблема в том, что моя переменная html_markdown читается как строка? Какие шаги я могу предпринять, чтобы HTML отображался правильно? Заранее благодарю за помощь!

html_markdown будет содержать raw HTML, поэтому если вы отобразите его в шаблоне, он будет escape символы, такие как < в &lt; и т.д.

Вы можете пометить строку как "безопасную" с помощью |safe фильтра шаблона [Django-doc] для предотвращения экранирования этих символов:

{% block body %}
<div>
    {{ html_markdown|safe }}
</div>
{% endblock %}
Вернуться на верх