Source code for httk.serve.web.templating.base
"""Define template render inputs and the engine protocol."""
from dataclasses import dataclass
from typing import Protocol
@dataclass(frozen=True)
[docs]
class TemplateEngine(Protocol):
"""Define the page and fragment template-engine protocol."""
[docs]
def render(self, render_input: TemplateRenderInput) -> str:
"""Render page content through the configured templates."""
...
[docs]
def render_fragment(self, *, template_name: str, context: dict[str, object]) -> str | None:
"""Render one optional fragment template."""
...