簡體   English   中英

Django-使用Bleach清理Markdown

[英]Django - Rendering Markdown Sanitizied with Bleach

當我做markdown(text),沒有漂白的時候,我得到了想要的結果(原始):

<p>blah</p>

並且它正確顯示為:

blah

其中“ p”標簽正確顯示為段落塊。

當我做bleach.clean(markdown.markdown(text))時,我得到(原始):

&lt;p&gt;blah&lt;/p&gt;

並且它錯誤地顯示為:

<p>blah</p>

其中“ p”標記是文本的一部分,而不是HTML段落塊。

您需要將bleach 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

等等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM