summaryrefslogtreecommitdiff
path: root/docs/doc_conventions.rst
diff options
context:
space:
mode:
authorKevin Van Brunt <kmvanbrunt@gmail.com>2019-07-06 20:31:00 -0400
committerKevin Van Brunt <kmvanbrunt@gmail.com>2019-07-06 20:31:00 -0400
commit3470b8861298b7e2e04f8f49befe98598c5a3b2a (patch)
tree81d63f9ac6e89d4ccc61d9afc6cf3d1054f878f6 /docs/doc_conventions.rst
parent901aa9ed176507071198e84978891c69cc6e9d3b (diff)
parent34975b52e769514b44ee8c13147a22961e68e7a7 (diff)
downloadcmd2-git-3470b8861298b7e2e04f8f49befe98598c5a3b2a.tar.gz
Merge branch 'master' into auto_completer_refactor
Diffstat (limited to 'docs/doc_conventions.rst')
-rw-r--r--docs/doc_conventions.rst128
1 files changed, 128 insertions, 0 deletions
diff --git a/docs/doc_conventions.rst b/docs/doc_conventions.rst
new file mode 100644
index 00000000..39302fc6
--- /dev/null
+++ b/docs/doc_conventions.rst
@@ -0,0 +1,128 @@
+Documentation Conventions
+=========================
+
+Guiding Principles
+------------------
+
+Follow the `Documentation Principles
+<http://www.writethedocs.org/guide/writing/docs-principles/>`_ described by
+`Write The Docs <http://www.writethedocs.org>`_
+
+In addition:
+
+- We have gone to great lengths to retain compatibility with the standard
+ library cmd, the documentation should make it easy for developers to
+ understand how to move from cmd to cmd2, and what benefits that will provide
+- We should provide both descriptive and reference documentation.
+- API reference documentation should be generated from docstrings in the code
+- Documentation should include rich hyperlinking to other areas of the
+ documentation, and to the API reference
+
+
+Naming Files
+------------
+
+- all lower case file names
+- if the name has multiple words, separate them with an underscore
+- all documentation file names end in '.rst'
+
+
+Heirarchy of headings
+---------------------
+
+show the heirarchy of sphinx headings we use, and the conventions (underline
+only, no overline)
+
+Use '=', then '-', then '~'. If your document needs more levels than that,
+break it into separate documents.
+
+You only have to worry about the heirarchy of headings within a single file.
+Sphinx handles the intra-file heirarchy magically on it's own.
+
+Use two blank lines before every heading unless it's the first heading in the
+file. Use one blank line after every heading
+
+
+Code
+----
+
+This documentation declares python as the default Sphinx domain. Python code
+or interactive python sessions can be presented by either:
+
+- finishing the preceding paragraph with a ``::`` and indenting the code
+- use the ``.. code-block::`` directive
+
+If you want to show other code, like shell commands, then use ``.. code-block:
+shell``.
+
+
+Table of Contents and Captions
+------------------------------
+
+
+Hyperlinks
+----------
+
+If you want to use an external hyperlink target, define the target at the top
+of the page, not the bottom.
+
+
+We use the Sphinx `autosectionlabel
+<http://www.sphinx-doc.org/en/master/usage/extensions/autosectionlabel.html>`_
+extension. This allows you to reference any header in any document by::
+
+ See :ref:`features/argument_processing:Help Messages`
+
+or ::
+
+ See :ref:`custom title<features/argument_processing:Help Messages>`
+
+Which render like
+
+See :ref:`features/argument_processing:Help Messages`
+
+and
+
+See :ref:`custom title<features/argument_processing:Help Messages>`
+
+[TODO what's the right way to link to source code? Can we make it link to the
+tag that the documentation is rendered from?]
+
+
+Autolinking
+-----------
+
+
+Referencing cmd2 API documentation
+----------------------------------
+
+
+Info and Warning Callouts
+-------------------------
+
+
+Wrapping
+--------
+
+Hard wrap all text with line lengths no greater than 79 characters. It makes
+everything easier when editing documentation, and has no impact on reading
+documentation because we render to html.
+
+
+Referencing cmd2
+-----------------
+
+Whenever you reference ``cmd2`` in the documentation, enclose it in double
+backticks. This indicates an inline literal in restructured text, and makes it
+stand out when rendered as html.
+
+Style Checker
+-------------
+
+Use `doc8 <https://pypi.org/project/doc8/>`_ to check the style of the
+documentation. This tool can be invoked using the proper options by typing:
+
+.. code-block:: shell
+
+ $ invoke doc8
+