Рендеринг текста 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 символы, такие как <
в <
и т.д.
Вы можете пометить строку как "безопасную" с помощью |safe
фильтра шаблона [Django-doc] для предотвращения экранирования этих символов:
{% block body %}
<div>
{{ html_markdown|safe }}
</div>
{% endblock %}