Module

rendering.template_functions.navigation

Navigation helper functions for templates.

Provides functions for breadcrumbs, navigation trails, pagination, hierarchical navigation trees, and auto-discovered navigation.

This package combines:

  • Type-safe dataclass models for navigation elements
  • Template functions for generating navigation structures
  • Helper functions for section access and page lookups
  • Cached NavTree infrastructure for O(1) navigation lookups

Organization:

  • models.py: Typed dataclasses (BreadcrumbItem, etc.)
  • breadcrumbs.py: get_breadcrumbs()
  • pagination.py: get_pagination_items()
  • tree.py: get_nav_tree(), get_nav_context()
  • auto_nav.py: get_auto_nav(), section menu helpers
  • toc.py: get_toc_grouped(), combine_track_toc_items()
  • section.py: get_section(), section_pages()

Core NavTree Models (bengal.core.nav_tree):

  • NavNode: Immutable node in navigation tree
  • NavTree: Cached tree with O(1) lookups
  • NavTreeContext: Per-page active trail overlay
  • NavNodeProxy: Template-friendly wrapper

Related:

  • bengal/rendering/template_functions/get_page.py: Page lookup
  • bengal/core/section.py: Section model
  • bengal/core/nav_tree.py: NavTree infrastructure

Functions

register 2 None
Register navigation functions with Jinja2 environment.
def register(env: TemplateEnvironment, site: SiteLike) -> None
Parameters
Name Type Description
env TemplateEnvironment
site SiteLike