.. _documentation_workflow:
User-level documentation workflow
#################################
What you need to know
+++++++++++++++++++++
We use `Sphinx `_ to generate
documentation and `Read the Docs `_ to
publish it. Sphinx uses reStructuredText as the base format for the
documentation. To learn more about the syntax, check out this `quick
reference
`_.
The NEST simulator documentation lives alongside its code. It is
contained in the ``doc/userdoc`` directory within the `NEST source
code repository `_ on GitHub.
We work with `GitHub `_ as a web-based hosting
service for Git. Git allows us to keep our versions under control,
with each release of NEST having its own documentation.
This workflow aims for the concept of **user-correctable documentation**.
.. image:: ../static/img/documentation_workflow.png
:width: 500
:alt: Alternative text
.. note::
This workflow shows you how to create **user-level documentation**
for NEST. For the **developer documentation**, please refer to our
:doc:`Developer documentation workflow
`.
Changing the documentation
++++++++++++++++++++++++++
If you notice any errors or weaknesses in the documentation, please
submit an `Issue `_ in
our GitHub repository.
You can also make changes directly to your forked copy of the `NEST source
code repository `_ and create a `pull
request `_. Just follow the
workflow below!
Setting up your environment
+++++++++++++++++++++++++++
We recommend that you set up a full NEST developer environment using
Conda (for details on Conda, see :doc:`../installation/conda_tips`):
.. code-block:: bash
conda env create -f /extras/conda-nest-simulator-dev.yml
conda activate nest-simulator-dev
If you later on want to deactivate or delete the build environment:
.. code-block:: bash
conda deactivate
conda remove --name nest-simulator-dev --all
If you want to install only a minimal set of packages for building the
documentation and avoid using Conda, you can use pip:
.. code-block:: bash
pip3 install -r /extras/nest-simulator-doc-requirements.txt
Generating documentation with Sphinx
++++++++++++++++++++++++++++++++++++
Now that you activated your environment, you can generate HTML files using
Sphinx.
Rendering HTML
~~~~~~~~~~~~~~
You can build and preview the documentation locally by running the following
commands.
1. Go to the :ref:`build directory ` of NEST (i.e., the
directory where you ran ``cmake``)
.. code-block:: bash
cd nest-simulator-x.y.z-build
2. Generate HTML files
.. code-block:: bash
make html
3. Preview files. They are located in ``doc/userdoc/html``
.. code-block:: bash
browser doc/userdoc/html/index.html
To install the documentation under ```` along with
the rest of NEST, the ``make html`` command can be followed by
.. code-block:: bash
make install
If you want to view the files after installation, you can run
.. code-block:: bash
browser /share/doc/nest/html/index.html
Editing and creating pages
~~~~~~~~~~~~~~~~~~~~~~~~~~
To edit existing `reStructuredText `_ files or to create new ones, follow the steps below:
1. You can edit and/or add ``.rst`` files in the ``doc/userdoc`` directory using your
editor of choice.
2. If you create a new page, open ``contents.rst`` in the ``doc/userdoc`` directory
and add the file name under ``.. toctree::``. This will ensure it appears on
the NEST simulator documentation's table of contents.
3. If you rename or move a file, please make sure you update all the
corresponding cross-references.
4. Save your changes.
5. Re-render documentation as described above.
You can find our full :doc:`documentation style guide <../contribute/styleguide/styleguide>` here.
Previewing on Read the Docs (optional)
++++++++++++++++++++++++++++++++++++++
Proceed as follows to preview your version of the documentation on Read the
Docs.
1. Check that unwanted directories are listed in ``.gitignore``:
.. code-block:: bash
_build
_static
_templates
2. Add, commit and push your changes to GitHub.
3. Go to `Read the Docs `_. Sign up for an account
if you don't have one.
4. `Import `_ the project.
5. Enter the details of your project in the ``repo`` field and hit ``Create``.
6. `Build `_ your documentation.
This allows you to preview your work on your Read the Docs account. In order
to see the changes on the official NEST simulator documentation, please submit
a pull request.
Creating pull request
+++++++++++++++++++++
Once your documentation work is finished, you can create a
:doc:`pull request <../contribute/development_workflow` to the ``master``
branch of the NEST Source Code Repository. Your pull request will be reviewed
by the NEST Documentation Team!