27 lines
718 B
Python
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(' ') * 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())
|
|
|