.. _docs: Adding documentation ===================== Documentation for |pow| is housed in two locations: #. In the top-level project directory as :file:`INSTALL.md` and :file:`README.md`. #. As a `Sphinx `_ project under the ``docs`` directory By way of example, to add a page about useful facts concerning C. elegans to the documentation, include an entry in the list under ``toctree`` in :file:`docs/index.rst` like:: worm-facts and create the file :file:`worm-facts.rst` under the :file:`docs` directory and add a line:: .. _worm-facts: to the top of your file, remembering to leave an empty line before adding all of your wonderful worm facts. You can get a preview of what your documentation will look like when it is published by running ``sphinx-build`` on the docs directory:: sphinx-build -w sphinx-errors docs build_destination The docs will be compiled to html which you can view by pointing your web browser at :file:`build_destination/index.html`. If you want to view the documentation locally with the `ReadTheDocs theme `_ you'll need to download and install it. .. _a: https://github.com/snide/sphinx_rtd_theme API Documentation ------------------ API documentation is generated by the Sphinx `autodoc `_ extension. The format should be easy to pick up on, but a reference is available `here `_. Just add a docstring to your function/class/method and add an ``automodule`` line to :file:`PyOpenWorm/__init__.py` and your class should appear among the other documented classes. .. _b0: http://sphinx-doc.org/ext/autodoc.html .. _b1: https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt Substitutions ------------- Project-wide substitutions can be (conservatively!) added to allow for easily changing a value over all of the documentation. Currently defined substitutions can be found in :file:`conf.py` in the ``rst_epilog`` setting. `More about substitutions `_ .. _c: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#substitution-definitions Conventions ----------- If you'd like to add a convention, list it here and start using it. It can be reviewed as part of a pull request. 1. Narrative text should be wrapped at 80 characters. 2. Long links should be extracted from narrative text. Use your judgement on what 'long' is, but if it causes the line width to stray beyond 80 characters that's a good indication.