# Adding Documentation

To add new documentation, define the `SPHINX_TREES` and
`SPHINX_PYTHON_PACKAGE_DIRS` variables in `moz.build` files in
the tree and documentation will automatically get picked up.

Say you have a directory `featureX` you would like to write some
documentation for. Here are the steps to create Sphinx documentation
for it:

1. Create a directory for the docs. This is typically `docs`. e.g.
   `featureX/docs`.
2. Create an `index.rst` file in this directory. The `index.rst` file
   is the root documentation for that section. See `build/docs/index.rst`
   for an example file.
3. In a `moz.build` file (typically the one in the parent directory of
   the `docs` directory), define `SPHINX_TREES` to hook up the plumbing.
   e.g. `SPHINX_TREES["/featureX"] = "docs"`. This says *the \`\`docs\`\`
   directory under the current directory should be installed into the
   Sphinx documentation tree under \`\`/featureX\`\`*.
4. If you have Python packages you would like to generate Python API
   documentation for, you can use `SPHINX_PYTHON_PACKAGE_DIRS` to
   declare directories containing Python packages. e.g.
   `SPHINX_PYTHON_PACKAGE_DIRS += ["mozpackage"]`.
5. In `docs/config.yml`, defines in which category the doc
   should go.
6. Verify the rst syntax using [./mach lint -l rst]

[./mach lint -l rst]: /tools/lint/linters/rstlinter.html
