.. _buildingrst:

Writing VPP Documentation
=========================

These instructions show how the VPP documentation sources are built.

The VPP Documents are written using `reStructuredText <http://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html>`_ (rst),
or markdown (md). These files are then built using the Sphinx build system `Sphinx <http://www.sphinx-doc.org/en/master/>`_.

Building the docs
-----------------

Start with a clone of the vpp repository.

.. code-block:: console

   $ git clone https://gerrit.fd.io/r/vpp
   $ cd vpp

Build the html **index.html** file:

.. code-block:: console

   $ make docs

Delete all the generated files with the following:

.. code-block:: console

   $ make docs-clean

View the results
----------------

If there are no errors during the build process, you should now have an ``index.html`` file in your ``vpp/docs/_build/html`` directory, which you can then view in your browser.

Whenever you make changes to your ``.rst`` files that you want to see, repeat this build process.

Writing Docs and merging
------------------------

Documentation should be added as ``.rst`` file in the ``./src/`` tree next to the code it refers to. A symlink should be added at the relevant place in the ``./docs`` folder and a link in the appropriate place in the tree.

To ensure documentation is correctly inserted, you can run

.. code-block:: console

   $ ./extras/scripts/check_documentation.sh

VPP documents are reviewed and merged like and other source code. Refer to :ref:`gitreview`
to get your changes reviewed and merged.
