@@ -0,0 +1,945 @@
+import bleach%0Aimport markdown%0Afrom django import template%0Afrom django.utils.safestring import mark_safe%0A%0Aregister = template.Library()%0A%0AALLOWED_TAGS = %5B%0A    'a',%0A    'abbr',%0A    'acronym',%0A    'b',%0A    'blockquote',%0A    'code',%0A    'em',%0A    'i',%0A    'li',%0A    'ol',%0A    'strong',%0A    'ul',%0A    'p',%0A    'table',%0A    'tbody',%0A    'thead',%0A    'tr',%0A    'td',%0A    'th',%0A    'h1',%0A    'h2',%0A    'h3',%0A    'h4',%0A    'h5',%0A    'h6',%0A%5D%0A%0AALLOWED_ATTRIBUTES = %7B%0A    'a': %5B'href', 'title'%5D,%0A    'abbr': %5B'title'%5D,%0A    'acronym': %5B'title'%5D,%0A    'table': %5B'width'%5D,%0A    'td': %5B'width', 'align'%5D,%0A%7D%0A%0A%0A@register.filter%0Adef rich_text(text: str, **kwargs):%0A    %22%22%22%0A    Processes markdown and cleans HTML in a text input.%0A    %22%22%22%0A    if not text:%0A        return %22%22%0A    body_md = bleach.linkify(bleach.clean(markdown.markdown(str(text)),%0A                                          tags=ALLOWED_TAGS, attributes=ALLOWED_ATTRIBUTES))%0A    return mark_safe(body_md)%0A

Add a templatetag to display markdown