from bleach.sanitizer import Cleaner, ALLOWED_TAGS from bleach.linkifier import LinkifyFilter from jinja2 import pass_eval_context from markupsafe import Markup TAGS = ["cite", "code", "details", "p", "pre", "img", "span", "summary"] TAGS.extend(ALLOWED_TAGS) ATTRIBUTES = { "a": ["href", "title", "class"], "details": ["open"], "img": ["alt", "src", "title"], "span": ["class"], } cleaner = Cleaner(tags=TAGS, attributes=ATTRIBUTES, filters=(LinkifyFilter,)) @pass_eval_context def bleach(ctx, html): res = cleaner.clean(html) if ctx.autoescape: res = Markup(res) return res