Glossary
Definitions of core terms used throughout the Flude design documentation, cross-referenced to their real implementation in engine/ude/.
Pipeline Stages
- Collector — Component responsible for invoking an external tool (Doxygen) against source code and producing intermediate XML. Base class:
BaseCollector(engine/ude/interfaces.py). - Parser — Component that reads a Collector's XML output and constructs the typed Intermediate Representation. Base class:
BaseParser(engine/ude/interfaces.py); the concrete Doxygen implementation isDoxygenXmlParser(engine/ude/parsers/doxygen_router.py), which dispatches to language-specific subclasses ofBaseDoxygenParser. - Renderer — Component that consumes the IR (
ProjectCatalog) and writes final output files (HTML or Hugo Markdown). Base class:BaseRenderer(engine/ude/interfaces.py). See Renderer Interface for the full 16-class naming matrix (<Lang><Output><ID>Renderer, e.g.CppHtmlDefaultRenderer). - Orchestrator — The top-level coordinator that drives a single project through Collector → Parser → Renderer in sequence, resolves configuration, and manages the build cache. Implemented as
UdeOrchestrator(engine/ude/orchestrator.py). Referred to informally as "the orchestrator" elsewhere in this documentation set — both forms mean this same class.
Intermediate Representation (IR)
- IR (Intermediate Representation) — The typed Pydantic data model produced by a Parser and consumed by a Renderer, decoupling language-specific parsing from output-format-specific rendering. Defined in
engine/ude/models.py. - Catalog / ProjectCatalog — The root IR container for one compiled project: a collection of typed entity models plus project metadata (
project_name,version). Class:ProjectCatalog(engine/ude/models.py). - Typed entity models — The seven Pydantic models that make up a
ProjectCatalog's contents, replacing the earlier v1.0ClassEntitydiscriminated union (seeGAP-03inroadmap/future_v2.md):ClassModel,MethodModel,ParameterModel,EnumModel,VariableModel,ConstantModel,TypeAliasModel. A method's multiple signatures (e.g. Python/SWIG docstring overloads) are captured viaOverloadModelonMethodModel.overloads.
Configuration
- GlobalConfig — The engine-wide configuration model (
ude_global_config.json), covering fields such asdoxygen_path,log_level,log_file,cache_root_dir,global_templates_dir. Class:GlobalConfig(engine/ude/config.py). - Doxyfile — A Doxygen configuration source file. Flude merges Doxyfile sources across three tiers (global template → target-specific template → runtime parameters) using key-level, last-value-wins semantics.
- sidebar.toml — The single, mandatory per-project navigation configuration file, resolved next to each project's
ude_doc_config.json. Loaded via the strictload_sidebar_toml()inengine/ude/orchestrator.py, which raisesUdeExceptionif the file is missing or malformed. Defines the[[sidebar]]node array (four node types:api_reference,static,inline,redirect) and, optionally, a[groups]table overriding the engine-default folder taxonomy. See Sidebar Navigation Configuration (Section 3) for the full schema.
Caching & Errors
- BuildCacheManager — Implements the two-level (L1 parse-cache / L2 render-cache) incremental build cache, keyed by IR content hash. Class:
BuildCacheManager(engine/ude/storage.py). - UdeException — The engine's single custom exception type for configuration and pipeline-resolution failures (e.g. a missing
sidebar.toml). Class:UdeException(engine/ude/interfaces.py). Callers that need a hard failure on a real misconfiguration should let it propagate rather than swallowing it with a bareexcept Exception.
Output Renderers
- HtmlRenderer — Concrete
BaseRendererproducing standalone static HTML output. Class:HtmlRenderer(engine/ude/renderers/static_html.py). - HugoMarkdownRenderer — Concrete
BaseRendererproducing Hugo-compatible Markdown output. Class:HugoMarkdownRenderer(engine/ude/renderers/hugo_markdown.py).