Source code for shopyo.api.templates
from flask import render_template, get_template_attribute
try:
from markupsafe import Markup
except ImportError:
try:
from jinja2 import Markup
except ImportError:
from flask import Markup
[docs]
def yo_render(template, context_dict):
"""
Renders template.
Usage: yo_render("index.html", {"x": 1, "y": 2})
Same as render_template("index.html", x=1, y=2)
Args:
template (String): template accessing
context_dict (Dict): Template values
Returns
-------
html of template
"""
return render_template(template, **context_dict)
[docs]
def yo_render_string(template_string, context_dict):
"""
Renders a template from a string.
Usage: yo_render_string("Hello {{ name }}!", {"name": "World"})
"""
from flask import render_template_string
return render_template_string(template_string, **context_dict)
[docs]
def yo_get_macro(template_name, macro_name):
"""
Gets a macro from a template for use in Python code.
Usage:
my_macro = yo_get_macro("macros.html", "my_macro")
html = my_macro(arg1, arg2)
"""
return get_template_attribute(template_name, macro_name)
[docs]
def yo_safe(html_string):
"""
Marks a string as safe for rendering (prevents auto-escaping).
Usage: yo_safe("<b>bold</b>")
"""
return Markup(html_string)