blob: d73f458dd55069ded71315c94f8bcc66d3b8cb33 [file] [log] [blame]
Zack Williams071eda22019-05-15 18:19:51 -07001Documentation Guide
2===================
3
4Building the Docs
5------------------
6
7The documentation build process is stored in the Makefile. Building docs
8requires Python to be installed, and most steps will create a virtualenv
9(``doc_venv``) which install the documentation generation toolset.
10
11Run ``make html`` to generate html documentation in ``_build/html``.
12
13Run ``make reload`` to get a live reload in your browser (refreshes on document
14save).
15
16To check the formatting of documentation, run ``make lint``. This will be done
17in Jenkins to validate the documentation, so please do this before you create a
18patchset.
19
20Writing Docs
21------------
22
23Docs written using sphinx: http://www.sphinx-doc.org
24
25Documentation is done in reStructuredText (``.rst``) or Markdown (``.md``),
26but only .rst files can use certain features like embedded diagrams.
27
28reStructuredText Primer:
29http://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
30
31Creating Diagrams
32-----------------
33
34Inline Graphviz is supported:
35https://www.sphinx-doc.org/en/master/usage/extensions/graphviz.html
36
37The blockdiag suite of tools can be used for other specific graph types:
38
39- Block diagrams: http://blockdiag.com/en/blockdiag/sphinxcontrib.html
40- Network diagrams (& racks): http://blockdiag.com/en/nwdiag/sphinxcontrib.html
41
42Attributes that can be applied to nodes:
43http://blockdiag.com/en/blockdiag/attributes/node.attributes.html
44
45Examples:
46
47- blockdiag: http://blockdiag.com/en/blockdiag/examples.html
48- nwdiag: http://blockdiag.com/en/nwdiag/nwdiag-examples.html
49- rackdiag: http://blockdiag.com/en/nwdiag/rackdiag-examples.html