Replace the hand-maintained ``api.rst`` listing with a single
``.. autosummary:: :recursive:`` entry point, and add an autosummary
template under ``_templates/autosummary/module.rst`` that recursively
emits a page per submodule. The output directory ``docs/api/`` is
gitignored.
The template uses ``.. rubric:: Submodules`` instead of a section
heading so the autogenerated pages don't all register a duplicate
"Submodules" autosectionlabel.
Adjustments to ``conf.py`` to make the auto-generated pages readable:
- ``autodoc_class_signature = "separated"`` so the class declaration line
does not duplicate the ``__init__`` parameter list.
- ``skip_inherited_undocumented`` (autodoc-skip-member): when a subclass
overrides a method without its own docstring, do not document the
override on the subclass page; the parent's "Bases:" link already
points readers to the canonical entry. Avoids duplicating the parent's
full docstring on every subclass.
- ``_patch_directive_header_for_reexports`` (monkey-patch of
``_directive_header_lines``): for re-exported symbols (e.g.
``angr.SimState`` re-exporting ``angr.sim_state.SimState``), inject
``:no-index:`` so the entry still renders on the parent page but the
canonical defining-module page is the unambiguous cross-reference
target.
Turn on ``autosectionlabel_prefix_document = True`` so that auto-generated
section labels are prefixed with the document path. This silences the
duplicate-label warnings between narrative pages where the same H1 text
appears in more than one file (e.g. "State Plugins" in
``core-concepts/states.rst`` and ``extending-angr/state_plugins.rst``,
"Core Concepts" in ``core-concepts/index.rst`` and
``core-concepts/toplevel.rst``).
Update the existing bare-label ``:ref:`` links to use the prefixed form
(e.g. ``:ref:`text <core-concepts/loading:Loading a Binary>```), and at
the same time collapse the line-wrapped links that were already brittle.
* Add in-tree docs
* Add build dependencies to RTD build
* Also install newer pip
* Install angrdb and pcode when building docs
* Sync ci docs with rtd config
* Use pipe for multiline string
* Fix typo
* Replace copyright with project_copyright
* Ignore type aliases in sphinx coverage
* Add links to plugin documentation
* Use coverage_ignore_pyobjects to ignore aliases
* Attribute copyright to contributors