From f357063e89777bf437ec0bfd3042c531c9ad0b74 Mon Sep 17 00:00:00 2001 From: Erik Stein Date: Fri, 2 Dec 2016 14:29:15 +0100 Subject: [PATCH] text_tags: nbsp template tag. --- utils/templatetags/text_tags.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/utils/templatetags/text_tags.py b/utils/templatetags/text_tags.py index bb3e5fd..1270a29 100644 --- a/utils/templatetags/text_tags.py +++ b/utils/templatetags/text_tags.py @@ -2,6 +2,8 @@ from __future__ import unicode_literals # Erik Stein , 2015 +import re + from django import template from django.template.defaultfilters import stringfilter from django.utils.html import conditional_escape @@ -24,3 +26,17 @@ def conditional_punctuation(value, punctuation=",", space=" "): value += conditional_escape(space) # Append previously stripped space return value conditional_punctuation.is_safe = True + + +WHITESPACE = re.compile('\s+') + + +@register.filter(needs_autoescape=True) +@stringfilter +def nbsp(text, autoescape=True): + if autoescape: + esc = conditional_escape + else: + esc = lambda x: x + return mark_safe(WHITESPACE.sub(' ', esc(text.strip()))) +