當前位置: 首頁>>代碼示例>>Python>>正文


Python bleach.clean方法代碼示例

本文整理匯總了Python中bleach.clean方法的典型用法代碼示例。如果您正苦於以下問題:Python bleach.clean方法的具體用法?Python bleach.clean怎麽用?Python bleach.clean使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在bleach的用法示例。


在下文中一共展示了bleach.clean方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: strip_invalid_html

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def strip_invalid_html(content):
    ''' strips invalid tags/attributes '''

    allowed_tags = ['a', 'abbr', 'acronym', 'address', 'b', 'br', 'div', 'dl', 'dt',
                    'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img',
                    'li', 'ol', 'p', 'pre', 'q', 's', 'small', 'strike', 'strong',
                    'span', 'sub', 'sup', 'table', 'tbody', 'td', 'tfoot', 'th',
                    'thead', 'tr', 'tt', 'u', 'ul']

    allowed_attrs = {
        'a': ['href', 'target', 'title'],
        'img': ['src', 'alt', 'width', 'height'],
    }

    cleaned = bleach.clean(content,
                           tags=allowed_tags,
                           attributes=allowed_attrs,
                           strip=True)

    # handle malformed html after running through bleach
    tree = BeautifulSoup(cleaned, "lxml")
    return str(tree.html) 
開發者ID:irfancharania,項目名稱:fb-feed-gen,代碼行數:24,代碼來源:fetch.py

示例2: clean_html

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def clean_html(html, with_media=False):
    authorized_tags = [
        'p', 'a', 'ul', 'ol', 'li', 'blockquote',
        'h1', 'h2', 'h3', 'h4', 'h5',
        'strong', 'em',
        'br',
    ]
    authorized_attributes = {
        'a': ['href', 'title'],
        'img': ['src', 'width', 'height', 'alt'],
        'iframe': ['src', 'width', 'height', 'allowfullscreen'],
        'video': [
            'controls', 'width', 'height', 'allowfullscreen', 'preload',
            'poster'],
        'audio': ['controls', 'preload'],
        'source': ['src']
    }

    if with_media:
        authorized_tags += ['img', 'iframe', 'video', 'audio', 'source']

    return bleach.clean(
        html, authorized_tags, authorized_attributes, strip=True) 
開發者ID:ideascube,項目名稱:ideascube,代碼行數:25,代碼來源:utils.py

示例3: markdown_and_sanitize

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def markdown_and_sanitize(markdown_string):
  """Takes a markdown string and converts it into sanitized html.

  It uses the table extension; while that's not a part of standard
  markdown, it is sure to be useful for TensorBoard users.

  The sanitizer uses the allowed_tags and attributes specified above. Mostly,
  we ensure that our standard use cases like tables and links are supported.

  Args:
    markdown_string: Markdown string to sanitize

  Returns:
    a string containing sanitized html for input markdown
  """
  # Convert to utf-8 whenever we have a binary input.
  if isinstance(markdown_string, six.binary_type):
    markdown_string = markdown_string.decode('utf-8')

  string_html = markdown.markdown(
      markdown_string, extensions=['markdown.extensions.tables'])
  string_sanitized = bleach.clean(
      string_html, tags=ALLOWED_TAGS, attributes=ALLOWED_ATTRIBUTES)
  return string_sanitized 
開發者ID:ryfeus,項目名稱:lambda-packs,代碼行數:26,代碼來源:text_plugin.py

示例4: __init__

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def __init__(self, markdown_file: Path):

        super().__init__()

        self.markdown_file = markdown_file

        self.html = bleach.clean(
            markdown.markdown(
                get_path(self.markdown_file).read_text(),
                extensions=[
                    "tables",
                    "sane_lists",
                    _WebvizMarkdownExtension(base_path=markdown_file.parent),
                ],
            ),
            tags=Markdown.ALLOWED_TAGS,
            attributes=Markdown.ALLOWED_ATTRIBUTES,
            styles=Markdown.ALLOWED_STYLES,
        )

        # Workaround for upstream issue https://github.com/plotly/dash-core-components/issues/746,
        # where we convert void html tags from <tag> to <tag/>.
        self.html = re.sub("<img (.*?[^/])>", r"<img \1/>", self.html)
        self.html = self.html.replace("<br>", "<br/>").replace("<hr>", "<hr/>") 
開發者ID:equinor,項目名稱:webviz-config,代碼行數:26,代碼來源:_markdown.py

示例5: render_markdown

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def render_markdown(data, auto_link=True, allow_html=False):
    ''' Returns the data as rendered markdown

    :param auto_link: Should ckan specific links be created e.g. `group:xxx`
    :type auto_link: bool
    :param allow_html: If True then html entities in the markdown data.
        This is dangerous if users have added malicious content.
        If False all html tags are removed.
    :type allow_html: bool
    '''
    if not data:
        return ''
    if allow_html:
        data = markdown(data.strip())
    else:
        data = RE_MD_HTML_TAGS.sub('', data.strip())
        data = clean_html(
            markdown(data), strip=True,
            tags=MARKDOWN_TAGS, attributes=MARKDOWN_ATTRIBUTES)
    # tags can be added by tag:... or tag:"...." and a link will be made
    # from it
    if auto_link:
        data = html_auto_link(data)
    return literal(data) 
開發者ID:italia,項目名稱:daf-recipes,代碼行數:26,代碼來源:helpers.py

示例6: render

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def render(text, truncate_words=None):
    html = markdown.markdown(
        text,
        extensions=[
            EmojiExtension(emoji_index=twemoji),
            SuperFencesCodeExtension(),
            MagiclinkExtension(),
            DeleteSubExtension(subscript=False),
            Nl2BrExtension(),
        ]
    )
    markdown_attrs['img'].append('class')
    markdown_tags.append('pre')
    clean_html = bleach.clean(html, markdown_tags, markdown_attrs)

    if truncate_words:
        clean_html = Truncator(clean_html).words(num=truncate_words, html=True)

    return clean_html 
開發者ID:yunity,項目名稱:karrot-backend,代碼行數:21,代碼來源:markdown.py

示例7: _validate

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def _validate(non_bleached_value, bleached_value):
        """Validates whether the specified non-bleached value ended up being
        correctly bleached.

        Arguments:
            non_bleached_value:
                The value before bleaching.

            bleached_value:
                The value after bleaching.
        """

        for lang_code, _ in settings.LANGUAGES:
            if not non_bleached_value.get(lang_code):
                assert not bleached_value.get(lang_code)
                continue

            expected_value = bleach.clean(
                non_bleached_value.get(lang_code), get_bleach_default_options()
            )

            assert bleached_value.get(lang_code) == expected_value 
開發者ID:SectorLabs,項目名稱:django-localized-fields,代碼行數:24,代碼來源:test_bleach_field.py

示例8: create

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def create(self, validated_data):
        enterprise_customer = self.context['view'].kwargs.get('enterprise_customer')
        email_type = validated_data['email_type']
        email_greeting = bleach.clean(validated_data.get('email_greeting', ''))
        email_closing = bleach.clean(validated_data.get('email_closing', ''))

        create_data = dict(
            enterprise_customer=enterprise_customer,
            email_type=email_type,
            email_greeting=email_greeting,
            email_closing=email_closing,
        )

        if 'name' in validated_data:
            create_data['name'] = validated_data.get('name')

        instance = OfferAssignmentEmailTemplates.objects.create(**create_data)

        # deactivate old templates for enterprise for this specific email type
        OfferAssignmentEmailTemplates.objects.filter(
            enterprise_customer=enterprise_customer,
            email_type=email_type,
        ).exclude(pk=instance.pk).update(active=False)

        return instance 
開發者ID:edx,項目名稱:ecommerce,代碼行數:27,代碼來源:serializers.py

示例9: format_email

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def format_email(template, placeholder_dict, greeting, closing):
    """
    Arguments:
        template (String): Email template body
        placeholder_dict (SafeDict): Safe dictionary of placeholders and their values
        greeting (String): Email greeting (prefix)
        closing (String): Email closing (suffix)

    Apply placeholders to the email template.

    Safely handle placeholders in the template without matching tokens (just emit the placeholders).

    Reference: https://stackoverflow.com/questions/17215400/python-format-string-unused-named-arguments
    """
    if greeting is None:
        greeting = ''
    if closing is None:
        closing = ''

    greeting = bleach.clean(greeting)
    closing = bleach.clean(closing)
    email_body = string.Formatter().vformat(template, SafeTuple(), placeholder_dict)
    return greeting + email_body + closing 
開發者ID:edx,項目名稱:ecommerce,代碼行數:25,代碼來源:utils.py

示例10: get_result_label_html

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def get_result_label_html(self, result):
        standard_html = '<strong>%s </strong>%s' % (
            bleach.clean(result.get_ticket_identifier()),
            bleach.clean(result.title)
        )

        # mark 'Done' issues
        if result.kanbancol.type == "Done":
            standard_html = '<del>%s</del><small style="padding-left: 1em">[%s]</small>' % (
                standard_html,
                result.kanbancol.get_type_display()
            )
        # mark archived issues
        if result.archived:
            standard_html = '<em class="text-muted">%s</em><small style="padding-left: 1em">[%s]</small>' % (
                standard_html,
                _("Archived")
            )

        return standard_html 
開發者ID:iguana-project,項目名稱:iguana,代碼行數:22,代碼來源:autocomplete.py

示例11: safe_text

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def safe_text(text):
    """Clean text, stripping all tags, attributes and styles."""
    return bleach.clean(text, tags=[], attributes=[], styles=[], strip=True) 
開發者ID:jaywink,項目名稱:social-relay,代碼行數:5,代碼來源:text.py

示例12: sanitize_html

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def sanitize_html(html, restricted=False):
    """
    Sanitize HTML we got from the user so it's safe to include in the page
    """
    # TODO: document the HTML subset allowed (particularly <pre lang="python">)
    allowed = allowed_tags_restricted if restricted else allowed_tags
    return mark_safe(bleach.clean(html, tags=allowed, attributes=allowed_attributes, strip=True)) 
開發者ID:sfu-fas,項目名稱:coursys,代碼行數:9,代碼來源:markup.py

示例13: clean

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def clean(self, value):
        content, markup, math = super(MarkupContentField, self).clean(value)

        if markup == 'html-wysiwyg':
            # the editor is a UI nicety only
            markup = 'html'

        if markup == 'html':
            content = sanitize_html(content, restricted=self.restricted)

        math = math and self.widget.allow_math

        return content, markup, math 
開發者ID:sfu-fas,項目名稱:coursys,代碼行數:15,代碼來源:markup.py

示例14: linkify_text

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def linkify_text(text):
    """ escape all html tags with bleach, then use bleach to linkify
    """
    if text:
        cleaned = bleach.clean(text, tags=[], attributes=[])
        return bleach.linkify(cleaned)
    else:
        return "" 
開發者ID:Pagure,項目名稱:pagure,代碼行數:10,代碼來源:filters.py

示例15: bleach_value

# 需要導入模塊: import bleach [as 別名]
# 或者: from bleach import clean [as 別名]
def bleach_value(value, tags=BLEACH_ALLOWED_TAGS, attributes=BLEACH_ALLOWED_ATTRIBUTES):
    return bleach.clean(value, tags=tags, attributes=attributes) 
開發者ID:zmrenwu,項目名稱:django-mptt-comments,代碼行數:4,代碼來源:utils.py


注:本文中的bleach.clean方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。