A simple Jinja filter: renderstring
I wrote this filter for Weblog:
def do_renderstring(): def wrapped(env, context, value): ''' Render the passed string. It is similar to the tag rendertemplate, except it uses the passed string as the template.Example: The template 'Hello {{ string_template|renderstring }}!'; Called with the following context: dict(string_template='{{ foo }} world', foo='crazy') Renders to: 'Hello crazy world!' ''' if value: return env.from_string(value).render(context.to_dict()) return wrapped
env.filters['renderstring'] = do_renderstring
Where env
is a Jinja Environment
object.
The code is in the public domain ;-)