New service to create and render template with Jinja
Allows us to include Jinja templates within Jinja templates
This commit is contained in:
parent
bfd931e854
commit
de1c987c85
|
@ -0,0 +1,39 @@
|
|||
from jinja2 import Environment, DictLoader
|
||||
|
||||
|
||||
class JinjaService:
|
||||
"""Service for Jinja2 templates.
|
||||
|
||||
Includes the ability to embed templates inside templates, using task.data.
|
||||
|
||||
-- In task.data
|
||||
name = "Dan"
|
||||
my_template = "Hi {{name}}, This is a jinja template too!"
|
||||
|
||||
-- In Element Documentation
|
||||
Please Introduce yourself.
|
||||
{% include 'my_template' %}
|
||||
Cool Right?
|
||||
|
||||
-- Produces
|
||||
Please Introduce yourself.
|
||||
Hi Dan, This is a jinja template too!
|
||||
Cool Right?
|
||||
"""
|
||||
|
||||
@staticmethod
|
||||
def get_content(input_template, data):
|
||||
templates = data
|
||||
templates['main_template'] = input_template
|
||||
jinja2_env = Environment(loader=DictLoader(templates))
|
||||
|
||||
try:
|
||||
template = jinja2_env.get_template('main_template')
|
||||
|
||||
except Exception:
|
||||
# TODO: Should we deal w/ specific exceptions here?
|
||||
# i.e., the ones in workflow_service._process_documentation
|
||||
raise
|
||||
|
||||
else:
|
||||
return template.render(**data)
|
Loading…
Reference in New Issue