当我做降价(文字),没有漂白剂时,我得到了想要的结果(原始):
<p>blah</p>
并正确显示为:
blah
其中“p”标记作为段落块正确呈现。
当我做bleach.clean(markdown.markdown(text))时,我得到(原始):
<p>blah</p>
,它显示为:
<p>blah</p>
其中“p”标记是文本的一部分,而不是HTML段落块。
答案 0 :(得分:1)
您需要将bleach
ed HTML标记为安全
from django.utils.safestring import mark_safe
...
return mark_safe(bleach.clean(markdown.markdown(text)))
但是,还有django-bleach提供与Django的集成和现成的标签,以便在Django中使用漂白。
{% load markdown_deux_tags bleach_tags %}
{{ view_user.profile.about|markdown:"user"|bleach }}
在settings.py
中你可以告诉django-bleach什么标签没问题
BLEACH_ALLOWED_TAGS = ['h1', 'h2', 'p', 'b', 'i', 'strong', 'a']
BLEACH_ALLOWED_ATTRIBUTES = ['href', 'title', 'style']
BLEACH_ALLOWED_STYLES = ['font-family', 'font-weight']
BLEACH_STRIP_TAGS = True
等