""" Full-page s-expression rendering. Provides ``render_page()`` for rendering a complete HTML page from an s-expression, bypassing Jinja entirely. Used by error handlers and (eventually) by route handlers for fully-migrated pages. Usage:: from shared.sexp.page import render_page html = render_page( '(~error-page :title "Not Found" :message "NOT FOUND" :image img :asset-url aurl)', image="/static/errors/404.gif", asset_url="/static", ) """ from __future__ import annotations from typing import Any from .jinja_bridge import sexp def render_page(source: str, **kwargs: Any) -> str: """Render a full HTML page from an s-expression string. This is a thin wrapper around ``sexp()`` — it exists to make the intent explicit in call sites (rendering a whole page, not a fragment). """ return sexp(source, **kwargs)