"""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)