{# ================================================================================ TEMPLATE VARIABLES ================================================================================ Bengal provides: page, site, config, params (page.metadata alias), meta, section Cache expensive function calls once per render. Page properties like title, _path, kind, tags are always defined - no defensive checks needed. ================================================================================ #} {# Template-wide variables using {% let %} for explicit scope NOTE: `page` can be None in some render contexts (e.g., error shells, test fixtures). Kida 0.7.0 strict_undefined requires guarded access. #} {% let params = params ?? {} %} {% let _page_title = page?.title ?? none %} {% let _page_url = page?._path ?? none %} {# Navigation - cache function calls #} {% let _current_lang = current_lang() %} {% let _direction = direction() %} {% let _site_title = site.title %} {# Normalized config objects (pre-processed by Site with defaults applied) #} {% let _build_badge = site.build_badge %} {% let _doc_app = site.document_application %} {% let _link_previews = site.link_previews %} {% let _per_page_json = 'json' in ((config?.output_formats ?? {})?.per_page ?? []) %} {% let _per_page_md = 'markdown' in ((config?.output_formats ?? {})?.per_page ?? []) %} {# Derived values #} {% let _main_menu = get_menu_lang('main', _current_lang) %} {% let _footer_menu = get_menu_lang('footer', _current_lang) %} {% let _doc_app_nav = _doc_app?.navigation ?? {} %} {% let _theme_view_transitions = 'navigation.view_transitions' in (theme.features ?? []) %} {% let _doc_app_vt = (_doc_app?.enabled ?? false) and (_doc_app_nav?.view_transitions ?? false) %} {% let _view_transitions = _theme_view_transitions or _doc_app_vt %} {% let _transition_style = _doc_app_nav?.transition_style ?? none %} {% let _llms_txt_url = '/llms.txt' | absolute_url %} {% let _cap_wiring = capability_wiring | default({'cache_key': '', 'stylesheets': [], 'scripts': [], 'lazy_loaders': [], 'runtime_globals': []}) %} {% let _cap_cache_key = _cap_wiring.cache_key %} {# ============================================================================= HELPER: Render a menu item (desktop/mobile) ============================================================================= #} {% def render_menu_item(item, is_mobile=false) %} {% let _children = item?.children ?? [] %} {% let _item_href = item?.href ?? '' %} {% let _item_name = item?.name ?? '' %} {% let has_children = _children | length > 0 %} {% let is_active = (item?.active ?? false) or (_page_url == _item_href) %} {% let is_trail = item?.active_trail ?? false %}
For a complete page index, fetch {{ _llms_txt_url }}.
{% include 'partials/site-announcement.html' %} {# Header #} {% let _header_sticky = theme.header_sticky ?? true %} {% let _header_nav_position = theme.header_nav_position ?? 'left' %}