Reference Page Guidelines
Note
The pre_commit or reference_doc utilities create and update only pages explicitly configured in
utilities/conf/reference_doc.elcl. They manage the final Interface section of those pages.
File Structure
The configuration utilities/conf/reference_doc.elcl assigns public headers to reference groups. Each group owns one page and can select headers by exact source-relative path or
Header Globs. A selected header must belong to exactly one group.The
update_docutility (andpre_commit) automatically create and update reference documentation pages.Only the framework with “Interface” is created/updated.
Pages no longer owned by a group are removed. Register prose-only pages in
Manual Reference Pagesbefore running the tool.Headers that are not assigned to a reference group are reported on every run and receive no fallback page.
If a header is reported, either assign it to a group, explicitly exclude it, or document it manually.
Page Structure
Each reference page follows this structure.
Index entries: One or more index entries
.. index::to quickly find the right type via search.Page Title: The page title using level double-asterisk
***\nAbc\n***. The page title describes the type naturally and can derive from a class name.Introduction: If the topic needs an introduction
Introductionusing level===`.Usage: As many sections (level
===) necessary to describe the individual types, methods, enums on this reference page as a short technical overview. For a class, its enough to explain what this class is for and give a summary of its API. On the reference page we don’t go into details of individual methods - these details are on topic pages. The goal of each section is to give the user a quick summary, so they can find a type or method. If a topic exists for a given type, enum or method, the reference page shall reference it.Interface: Mandatory last section
Interface, level===, contains only generated.. doxygenXXX:: symbolentries. Do not edit it manually.Example:
.. doxygenclass:: erbsland::math::SaturatingInteger :members: .. doxygentypedef:: erbsland::math::SatInt8 .. doxygentypedef:: erbsland::math::SatInt16