from django import template from django.template.defaultfilters import stringfilter from django.utils.safestring import mark_safe from bleach.sanitizer import Cleaner, ALLOWED_TAGS from bleach.linkifier import LinkifyFilter 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',), } register = template.Library() cleaner = Cleaner(tags=tags, attributes=attributes, filters=(LinkifyFilter,)) @register.filter @stringfilter def bleach(html): return mark_safe(cleaner.clean(html))