← Back to team overview

cloud-init-dev team mailing list archive

[Merge] ~powersj/cloud-init:docs/config-tox into cloud-init:master


Joshua Powers has proposed merging ~powersj/cloud-init:docs/config-tox into cloud-init:master.

Commit message:
doc: document doc, create markefile and tox target

* Create makefile and tox targets for documentation building and testing
to better replicate the live web docs using the same theme.
* Created docs.rst to explain how to build and contribute to documentation
with style guide and tips.
* doc/rtd/conf.py:
    * Add copyright to rtd config
    * Use Sphinx's RTD theme to replicate actual docs

Requested reviews:
  cloud-init commiters (cloud-init-dev)

For more details, see:
Your team cloud-init commiters is requested to review the proposed merge of ~powersj/cloud-init:docs/config-tox into cloud-init:master.
diff --git a/Makefile b/Makefile
index 4ace227..2c6d0c8 100644
--- a/Makefile
+++ b/Makefile
@@ -106,7 +106,9 @@ deb-src:
 		  echo sudo apt-get install devscripts; exit 1; }
 	$(PYVER) ./packages/bddeb -S -d
+	tox -e doc
 .PHONY: test pyflakes pyflakes3 clean pep8 rpm srpm deb deb-src yaml
 .PHONY: check_version pip-test-requirements pip-requirements clean_pyc
-.PHONY: unittest unittest3 style-check
+.PHONY: unittest unittest3 style-check doc
diff --git a/doc/rtd/conf.py b/doc/rtd/conf.py
index 4174477..9b27484 100644
--- a/doc/rtd/conf.py
+++ b/doc/rtd/conf.py
@@ -17,7 +17,8 @@ from cloudinit.config.schema import get_schema_doc
 # ]
 # General information about the project.
-project = 'Cloud-Init'
+project = 'cloud-init'
+copyright = '2019, Canonical Ltd.'
 # -- General configuration ----------------------------------------------------
@@ -59,15 +60,7 @@ show_authors = False
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
-html_theme = 'default'
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-html_theme_options = {
-    "bodyfont": "Ubuntu, Arial, sans-serif",
-    "headfont": "Ubuntu, Arial, sans-serif"
+html_theme = 'sphinx_rtd_theme'
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
diff --git a/doc/rtd/topics/docs.rst b/doc/rtd/topics/docs.rst
new file mode 100644
index 0000000..af2a3fb
--- /dev/null
+++ b/doc/rtd/topics/docs.rst
@@ -0,0 +1,83 @@
+.. _docs:
+These docs are hosted on Read the Docs. The following will explain how to
+contribute to and build these docs locally.
+The documentation is primarily written in reStructuredText.
+There is a makefile target to build the documentation for you:
+.. code-block:: shell
+    $ make doc
+This will do two things:
+- Build the documentation using sphinx
+- Run doc8 against the documentation source code
+Once build the HTML files will be viewable in ``doc/rtd_html``. Use your
+web browser to open ``index.html`` to view and navigate the site.
+Style Guide
+The headings used across the documentation use the following hierarchy:
+- ``*****``: used once atop of a new page
+- ``=====``: each sections on the page
+- ``-----``: subsections
+- ``^^^^^``: sub-subsections
+- ``"""""``: paragraphs
+The top level header ``######`` is reserved for the first page.
+If under and overline are used, their length must be identical. The length of
+the underline must be at least as long as the title itself
+Line Length
+Please keep the line lengths to a maximum of **79** characters. This ensures
+that the pages and tables do not get too wide that side scrolling is required.
+Adding a link at the top of the page allows for the page to be referenced by
+other pages. For example for the FAQ page this would be:
+.. code-block:: rst
+    .. _faq:
+The footer should include the textwidth
+.. code-block:: rst
+    .. vi: textwidth=80
+Vertical Whitespace
+One newline between each section helps ensure readability of the documentation
+source code.
+Common Words
+There are some common words that should follow specific usage:
+- ``cloud-init``: always lower case with a hyphen unless starting a sentence
+- ``metadata``: one word
+- ``user data``: two words, not to be combined
+- ``vendor data``: like user data, it is two words
+.. vi: textwidth=80
diff --git a/tox.ini b/tox.ini
index 1f01eb7..f5baf32 100644
--- a/tox.ini
+++ b/tox.ini
@@ -53,8 +53,13 @@ exclude = .venv,.tox,dist,doc,*egg,.git,build,tools
 basepython = python3
-deps = sphinx
-commands = {envpython} -m sphinx {posargs:doc/rtd doc/rtd_html}
+deps =
+    doc8
+    sphinx
+    sphinx_rtd_theme
+commands =
+    {envpython} -m sphinx {posargs:doc/rtd doc/rtd_html}
+    doc8 doc/rtd
 commands =

Follow ups