blob: a0acf092f031db8aea7af384c89cef9a247d70f8 [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
Zack Williamsc6460c22019-12-18 14:54:43 -070020To check spelling, run ``make spelling``. If there are additional words that
21are correctly spelled but not in the dictionary (acronyms, trademarks, etc.)
22please add them to the ``dict.txt`` file.
23
Zack Williams071eda22019-05-15 18:19:51 -070024Writing Docs
25------------
26
27Docs written using sphinx: http://www.sphinx-doc.org
28
29Documentation is done in reStructuredText (``.rst``) or Markdown (``.md``),
30but only .rst files can use certain features like embedded diagrams.
31
32reStructuredText Primer:
33http://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
34
35Creating Diagrams
36-----------------
37
38Inline Graphviz is supported:
39https://www.sphinx-doc.org/en/master/usage/extensions/graphviz.html
40
41The blockdiag suite of tools can be used for other specific graph types:
42
43- Block diagrams: http://blockdiag.com/en/blockdiag/sphinxcontrib.html
44- Network diagrams (& racks): http://blockdiag.com/en/nwdiag/sphinxcontrib.html
45
46Attributes that can be applied to nodes:
47http://blockdiag.com/en/blockdiag/attributes/node.attributes.html
48
49Examples:
50
51- blockdiag: http://blockdiag.com/en/blockdiag/examples.html
52- nwdiag: http://blockdiag.com/en/nwdiag/nwdiag-examples.html
53- rackdiag: http://blockdiag.com/en/nwdiag/rackdiag-examples.html