Autodoc is a Python-only solution that imports the author's code into memory, and then allows the author to more automatically document full objects. For example, you can document a whole class on a page.
..code-block:: py
.. autoclass:: Noodle
This will generate output that looks like:
..class:: Noodle
Noodle's docstring.
There are also options for it to include a full listing of the classes attributes, methods, and other things, automatically.
..warning:: Remember, this depends on ``Noodle`` being importable by the Python interpreter running Sphinx.
Proposed Architecture
---------------------
The proposed architecture for this project is as follows:
* A program that will generate a YAML (or JSON) file from a .Net project, representing it's full API information.
* Read the YAML and generate an appropriate tree structure that will the outputted HTML will look like (YAMLTree)
- If time allows, we will allow a merging of these objects with multiple YAML files to allow for prose content to be injected into the output
* Take the YAML structure and generate in-memory rst that corresponds to the Sphinx dotnet Domain objects
* dotnet Domain will output HTML based on the doctree generated from the in-memory RST
..warning:: Things in this section might not get implemented.
The .Net domain will not be able to depend on importing code from the users code base. We might be able to implement similar authoring tools with the YAML file. We might be able to output the YAML subtree of an object with autodoc style tools: