vibe.web_core.ui_loader

Custom Jinja loader that allows template authors to override selected UI files.

The loader looks for a template-specific override directory (configured via ui.templates, defaulting to ui/ inside the template bundle) before falling back to the standard Flask template locations.

TemplateOverrideLoader

Loader that checks the currently active template's override directory first.

__init__

__init__(fallback_loader: BaseLoader | None = None) -> None

Initialize with optional fallback loader for non-overridden templates.

get_source

get_source(environment: Environment, template: str) -> tuple[str, str | None, Callable[[], bool]]

Load template source, checking override directory before fallback.

TemplateOverrideCache

Cache wrapper that avoids reusing cached templates when UI overrides apply.

__init__

__init__(cache: object | None, loader: TemplateOverrideLoader) -> None

Wrap Jinja's bytecode cache to bypass caching when overrides exist.

get

get(key: object, default: object = None) -> object

Get cached template, returning default if override exists or not cached.

clear

clear() -> None

Clear all cached template bytecode.