Overview of Breathe architecture and subpackages
mainBreathe acts as a bridge between Doxygen XML output and Sphinx, converting Doxygen XML nodes into docutils reStructuredText (rst) nodes. The architecture is divided into several functional areas:
- Directives: The entry point for Sphinx users. It contains the rst directive definitions used in documentation files. The
directivessubmodule handles the registration with Sphinx and wires together the necessary factories. - Finder: Responsible for locating specific nodes within the XML files generated by Doxygen. Finders are typically used by directives to locate the relevant XML node before passing it to a renderer.
- Renderer: Converts Doxygen XML nodes into docutils rst nodes. Breathe focuses on producing rst nodes rather than specific output formats like HTML or LaTeX, leaving the final rendering to Sphinx.
- Parser: Parses Doxygen XML into a tree of Python objects. Much of this logic is contained in the automatically generated
_parsermodule. - Project: Represents a
Project, which is the Breathe abstraction for a directory containing Doxygen XML files. - Process: Manages the execution of the
doxygenprocess, specifically when usingautodoxygendirectives. - Exception: Provides a base class for all custom Breathe exceptions.