bundle.website.core.templating ============================== .. py:module:: bundle.website.core.templating .. autoapi-nested-parse:: Template path discovery and shared context helpers for website pages. Classes ------- .. autoapisummary:: bundle.website.core.templating.PageModule Functions --------- .. autoapisummary:: bundle.website.core.templating.get_template_path bundle.website.core.templating.get_static_path bundle.website.core.templating.get_logger bundle.website.core.templating.create_templates bundle.website.core.templating.base_context Module Contents --------------- .. py:function:: get_template_path(file_path: str | pathlib.Path) -> pathlib.Path Resolve the page-local template folder for the given module file. .. py:function:: get_static_path(file_path: str | pathlib.Path) -> pathlib.Path Resolve the page-local static folder for the given module file. .. py:function:: get_logger(page_name: str) -> logging.Logger Return a namespaced logger for website page/component modules. .. py:function:: create_templates(*template_roots: collections.abc.Iterable[pathlib.Path | str] | pathlib.Path | str) -> fastapi.templating.Jinja2Templates Create a Jinja environment that can resolve page templates and shared layouts. The shared base template and component template roots are always appended. .. py:function:: base_context(request: Any, extra: collections.abc.Mapping[str, Any] | None = None) -> dict[str, Any] Build the shared template context for website pages. .. py:class:: PageModule(module_file: str | pathlib.Path, name: str, *, slug: str | None = None, href: str | None = None, description: str = '', show_in_nav: bool = True, show_on_home: bool = True) Derive page boilerplate (router, templates, logger, paths) from a module file. Holds both runtime objects (router, templates, logger) and page metadata (name, slug, href, description) so each page declares everything in one place. .. py:attribute:: name .. py:attribute:: slug .. py:attribute:: href .. py:attribute:: description :value: '' .. py:attribute:: show_in_nav :value: True .. py:attribute:: show_on_home :value: True .. py:attribute:: template_path .. py:attribute:: static_path .. py:attribute:: logger .. py:attribute:: router .. py:attribute:: templates