Context
ONAP documentation is using reStructuredText (RST) as input format.
RST files are then translated to HTML file using Sphinx Python utility and are then uploaded to the readthedoc web site based on a dedicated Jenkins Job
In a few minutes, your local environment can be setup to help you writing RST files.
We propose 2 configurations:
- A local one: to verify syntax highlight
- An advanced one: to check locally the generated HTML files as produced by ONAP
Basic Local Environnement
Many tools are available to write RST files. We propose a solution based on VisualStudioCode that includes a large number of plugins to check that your RST files are correct.
The VisualStudioCode is available here
The useful extension for RST are the following:
As a result, we can see on your environment the RST key words highlighted and some spelling errors as illustrated on the following picture:
Advanced Local Environment
It is possible to preview the HTML produced by ONAP documentation using the Preview button on the top-right corner.
However, it requires some local configuration on your desktop
- to set up the following Python libraries.
- to configure the RST plugin
Local Python libraries
You must use Python3 version.
ONAP is using a set of Sphinx extensions to generate the documentation:
- sphinxcontrib.blockdiag
- sphinxcontrib.sphinxcontrib-needs
- sphinxcontrib.sphinxcontrib-plantuml
- sphinxcontrib.nwdiag
- sphinxcontrib.seqdiag
- sphinxcontrib.swaggerdoc with version <0.6.0
- sphinxcontrib.redoc
- sphinx_rtd_theme
Make sure you are in a Python 3 environment.
Install needed packages:
pip install lfdocs-conf
pip install rstcheck
pip install doc8
pip install sphinx sphinx-autobuild
pip install sphinxcontrib-blockdiag
pip install sphinxcontrib-needs==0.5.6'
pip install sphinxcontrib-plantuml
pip install sphinxcontrib-nwdiag
pip install sphinxcontrib-seqdiag
pip install sphinxcontrib-swaggerdoc
pip install sphinxcontrib-redoc
pip install sphinx_rtd_theme
RST Plugin configuration
In addition, it is important to configure the RST plugin with the following parameter as displayed in the figure
Click on "⌘," to display the Settings Panel
Goto 'Extensions' Menu and find 'reStructuredText' line
Conf Path: ${workspaceFolder}/docs
Docutils Writer: html
Docutils Writer Part: html_body
Linter: Executable Path: /usr/bin/doc8 or $VIRTUAL_ENV/bin/doc8 if you are in a python 3 virtual env (and launched Visual studio code from it)
Linter: Name: doc8
Sphinx Build Path: /usr/local/bin/sphinx-build or $VIRTUAL_ENV/bin/sphinx-build if you are in a python 3 virtual env (and launched Visual studio code from it)
Note: you an also use the settings.json file under <home>.config/Code/User and add the following properties
{
"restructuredtext.confPath": "${workspaceFolder}/docs",
"restructuredtext.sphinxBuildPath": "/usr/local/bin/sphinx-build",
"restructuredtext.linter.executablePath": "/usr/bin/doc8",
"restructuredtext.linter.name": "doc8"
}
Note: you need to open a Folder associated with the ONAP component