sourcing/sourcing/utils.py

27 lines
718 B
Python

import humanize
from datetime import date, timedelta
from jinja2 import Markup
def display_datetime(dt):
if dt is None:
return 'n/a'
today = date.today()
if today - dt.date() < timedelta(days=1):
return humanize.naturaltime(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('&nbsp;') * 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())