Source code for sphinxnotes.render

"""
sphinxnotes.render
~~~~~~~~~~~~~~~~~~

:copyright: Copyright 2026 by the Shengyu Zhang.
:license: BSD, see LICENSE for details.
"""

from __future__ import annotations
from typing import TYPE_CHECKING

from . import meta
from .data import (
    Registry as DataRegistry,
    REGISTRY as DATA_REGISTRY,
    PlainValue,
    Value,
    ValueWrapper,
    RawData,
    ParsedData,
    Field,
    Schema,
)
from .template import Phase, Template
from .ctx import PendingContext, ResolvedContext
from .ctxnodes import pending_node
from .extractx import (
    extra_context,
    ParsingPhaseExtraContext,
    ParsedPhaseExtraContext,
    ResolvingPhaseExtraContext,
    GlobalExtraContext,
)
from .pipeline import BaseContextRole, BaseContextDirective
from .sources import (
    UnparsedData,
    BaseDataDefineRole,
    BaseDataDefineDirective,
    StrictDataDefineDirective,
)
from .jinja import filter

if TYPE_CHECKING:
    from sphinx.application import Sphinx


"""Python API for other Sphinx extensions."""
__all__ = [
    'Registry',
    'PlainValue',
    'Value',
    'ValueWrapper',
    'RawData',
    'ParsedData',
    'Field',
    'Schema',
    'Phase',
    'Template',
    'PendingContext',
    'ResolvedContext',
    'ParsingPhaseExtraContext',
    'ParsedPhaseExtraContext',
    'ResolvingPhaseExtraContext',
    'GlobalExtraContext',
    'extra_context',
    'pending_node',
    'BaseContextRole',
    'BaseContextDirective',
    'UnparsedData',
    'BaseDataDefineRole',
    'BaseDataDefineDirective',
    'StrictDataDefineDirective',
    'filter',
]


[docs] class Registry: """The global, all-in-one registry for users.""" @property def data(self) -> DataRegistry: return DATA_REGISTRY
REGISTRY = Registry() def setup(app: Sphinx): meta.pre_setup(app) from . import pipeline, jinja pipeline.setup(app) jinja.setup(app) return meta.post_setup(app)