diff --git a/sourcing/utils.py b/sourcing/utils.py index 701e875..1ad86fe 100644 --- a/sourcing/utils.py +++ b/sourcing/utils.py @@ -1,5 +1,6 @@ import humanize from datetime import date, timedelta +from jinja2 import Markup def display_datetime(dt): if dt is None: @@ -10,4 +11,16 @@ def display_datetime(dt): else: return dt.strftime('%a, %d %b %Y') +def nbsp_at_start(line): + ''' Protect spaces at the start of a string. ''' + space_count = 0 + for c in line: + if c != ' ': + break + space_count += 1 + # return Markup(' ') * space_count + line[space_count:] + return '\u00A0' * space_count + line[space_count:] + +def protect_start_spaces(text): + return '\n'.join(nbsp_at_start(line) for line in text.splitlines())