1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"""Shared Jinja2 environment and preamble/postamble for pygitweb templates."""
from jinja2 import Environment, PackageLoader, select_autoescape
env = Environment(
loader=PackageLoader("pygitweb", "templates"),
autoescape=select_autoescape(enabled_extensions=("html", "xml"), default_for_string=True),
trim_blocks=True,
lstrip_blocks=True,
)
PREAMBLE = env.get_template("preamble.html")
POSTAMBLE = """</div></div></div></body></html>"""
_ESCAPE_TEMPLATE = env.from_string("{{ value|e }}")
def jinja_escape(value: str | None) -> str | None:
if value is None:
return None
return _ESCAPE_TEMPLATE.render(value=value)