from coffin.template import Library from jinja2.runtime import Undefined # from jinja2 import Markup from jinja2 import filters register = Library() def url(view_name, *args, **kwargs): """This is an alternative to the {% url %} tag. It comes from a time before Coffin had a port of the tag. """ from coffin.template.defaulttags import url return url._reverse(view_name, args, kwargs) register.jinja2_filter(url, jinja2_only=True) register.object(url) @register.jinja2_filter(jinja2_only=True) def timesince(value, *arg): if value is None or isinstance(value, Undefined): return u'' from django.utils.timesince import timesince return timesince(value, *arg) @register.jinja2_filter(jinja2_only=True) def timeuntil(value, *args): if value is None or isinstance(value, Undefined): return u'' from django.utils.timesince import timeuntil return timeuntil(value, *args)
# from jinja2 import Markup from jinja2 import filters register = Library() def url(view_name, *args, **kwargs): """This is an alternative to the {% url %} tag. It comes from a time before Coffin had a port of the tag. """ from coffin.template.defaulttags import url return url._reverse(view_name, args, kwargs) register.jinja2_filter(url, jinja2_only=True) register.object(url) @register.jinja2_filter(jinja2_only=True) def timesince(value, *arg): if value is None or isinstance(value, Undefined): return u'' from django.utils.timesince import timesince return timesince(value, *arg) @register.jinja2_filter(jinja2_only=True) def timeuntil(value, *args): if value is None or isinstance(value, Undefined): return u'' from django.utils.timesince import timeuntil
from coffin.template import Library register = Library() register.object(ord) register.object(chr)
"""Register a Jinja2 global object with a Coffin library object. """ def hello_func(name): return u"Hello %s" % name from coffin.template import Library register = Library() register.object('hello', hello_func)