From b72bc6356078745f38c1bcf95a809c75fc359b18 Mon Sep 17 00:00:00 2001 From: Harry Bridge Date: Sat, 5 Jan 2019 20:01:02 +0000 Subject: [PATCH] Templatetags for better field rendering --- templatetags/__init__.py | 0 templatetags/asset_templatetags.py | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 templatetags/__init__.py create mode 100644 templatetags/asset_templatetags.py 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'))