Troubleshooting error when using markdown filter in Django template

杀马特。学长 韩版系。学妹 提交于 2019-12-03 03:48:33

one idea is to install markdown2 library of python see here then you create your decorator

import markdown2
.. all other imports needed..

register = template.Library()

@register.filter(is_safe=True)
@stringfilter
def markdown2(value):
    return mark_safe(markdown2.markdown(force_unicode(value),safe_mode=True,enable_attributes=False))

then you use it

{% load myapp_markup %}
{{ value|markdown2 }}

code is adpated (and not tested) from here

Just an update:

My decorator looks like this:

import markdown2
from django import template
from django.template.defaultfilters import stringfilter
from django.utils.encoding import force_unicode
from django.utils.safestring import mark_safe

register = template.Library()

@register.filter(is_safe=True)
@stringfilter
def convertTxt(value):
    return mark_safe(markdown2.markdown(force_unicode(value)))

register.filter('convertTxt', convertTxt)

Also, I've noticed that it is not prudent to name your module or your method markdown2 :)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!