2018-06-24 20:11:52 -04:00
|
|
|
from bleach.sanitizer import Cleaner, ALLOWED_TAGS
|
|
|
|
from bleach.linkifier import LinkifyFilter
|
2022-04-29 00:54:49 -04:00
|
|
|
from jinja2 import pass_eval_context
|
|
|
|
from markupsafe import Markup
|
2018-06-24 20:11:52 -04:00
|
|
|
|
2023-08-10 02:52:37 -04:00
|
|
|
TAGS = ["cite", "code", "details", "p", "pre", "img", "span", "summary"]
|
2018-06-24 20:11:52 -04:00
|
|
|
TAGS.extend(ALLOWED_TAGS)
|
|
|
|
ATTRIBUTES = {
|
2023-08-10 02:52:37 -04:00
|
|
|
"a": ["href", "title", "class"],
|
|
|
|
"details": ["open"],
|
|
|
|
"img": ["alt", "src", "title"],
|
|
|
|
"span": ["class"],
|
2018-06-24 20:11:52 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
cleaner = Cleaner(tags=TAGS, attributes=ATTRIBUTES, filters=(LinkifyFilter,))
|
|
|
|
|
|
|
|
|
2022-04-29 00:54:49 -04:00
|
|
|
@pass_eval_context
|
2018-06-24 20:11:52 -04:00
|
|
|
def bleach(ctx, html):
|
|
|
|
res = cleaner.clean(html)
|
|
|
|
if ctx.autoescape:
|
|
|
|
res = Markup(res)
|
|
|
|
return res
|