5. Documenting software projects

The objectives of this tutorial are to familiarise yourself with:

  • principles for creating good documentation;

  • plain text markup languages commonly used for writing documentation (Markdown and reStructuredText);

  • tools for processing plain text documentation and generating output in html or pdf formats (Sphinx);

  • online services for hosting documentation (ReadTheDocs); and

  • methods for contributing to documentation.

Here are some examples of open-source code documented with Sphinx and hosted on the web.