This is the usual “canonical approach” to “getting started” applied to the case when your source code resides in a src
directory like Project/src
instead of simply being inside the Project
base directory.
Follows these steps:
-
Create a
docs
directory in yourProject
directory (it’s from thisdocs
directory the commands in the following steps are executed). -
sphinx-quickstart
(choose separatesource
frombuild
. Places.html
and.rst
files in different folders). -
sphinx-apidoc -o ./source ../src
-
make html
This would yield the following structure (provided you .py
source files reside in Project/src
):
Project
|
├───docs
│ │ make.bat
│ │ Makefile
│ │
│ ├───build
│ └───source
│ │ conf.py
│ │ index.rst
│ │ modules.rst
│ │ stack.rst
│ │
│ ├───_static
│ └───_templates
└───src
stack.py
In your conf.py
you’d add (after step 2):
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join('..', '..', 'src')))
Also include in conf.py
:
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.napoleon']
And in index.rst
you’d link modules.rst
:
Welcome to Project's documentation!
================================
.. toctree::
:maxdepth: 2
:caption: Contents:
modules
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Your stack.rst
and modules.rst
were auto-generated by sphinx-apidoc
, no need to change them (at this point). But just so you know this is what they look like:
stack.rst
:
stack module
============
.. automodule:: stack
:members:
:undoc-members:
:show-inheritance:
modules.rst
:
src
===
.. toctree::
:maxdepth: 4
stack
After `make html` open `Project/docs/build/index.html` in your browser, the results:
and: