diff --git a/templatetags/__init__.py b/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/templatetags/asset_templatetags.py b/templatetags/asset_templatetags.py new file mode 100644 index 00000000..905f9ce2 --- /dev/null +++ b/templatetags/asset_templatetags.py @@ -0,0 +1,21 @@ +from django import template +from django.template.defaultfilters import stringfilter +from django.utils.safestring import SafeData, mark_safe +from django.utils.text import normalize_newlines +from django.utils.html import escape + +register = template.Library() + + +@register.filter(is_safe=True, needs_autoescape=True) +@stringfilter +def linebreaksn(value, autoescape=True): + """ + Convert all newlines in a piece of plain text to jQuery line breaks + (`\n`). + """ + autoescape = autoescape and not isinstance(value, SafeData) + value = normalize_newlines(value) + if autoescape: + value = escape(value) + return mark_safe(value.replace('\n', '\\n'))