This documentation was brought you by these awesome people

Sphinx is a software development documentation tool written in Python. It is used by hundreds of projects, of some of which you can find on readthedocs.org.

sphinxcontrib.contributors Sphinx extension adds a sidebar box showing the contributors of the documentation. This information is automatically sourced from Git commits and Github user profiles.

https://raw.github.com/miohtama/sphinxcontrib.contributors/master/docs/screenshot.png

Often writing open source software documentation is a thankless task. Providing documentation is oversighted by many software developers. People who write documentation do not get to be in limelight like rockstar developers do. The sphinxcontrib.contributors Sphinx extension encourages writing documentation by giving the face time and link love for the writers on the documentation page itself by adding a new box to Sphinx sidebar.

1. Benefits

  • Give the credit where the credit is due
  • The process is automatic based on git history and there is no need to have separate contributors list
  • Show that the documentation is written by humans and it doesn’t born automatically
  • Encourage people to write more documentation

See the project on Github.

3. Installation

Install the package to your virtualenv:

pip install sphinxcontrib.contributors

Install templates and static media files needed for this extension to work. You can download the files from here. Use Github raw file view to download the file.

Add to your Sphinx static resource folder the following files:

transparency.min.js
contributors.js
contributors.css

Add to your Sphinx templates folder the following files:

contributors.html

4. Usage

The Sphinx HTML is fitted with information of Github API URL where to get commit for a specific file. Then a JavaScript AJAX request is used to pull the commit information. The authors are parsed from the commits.

You get a Github username as tooltip, Github profile link and Github avatar of each author.

  • If there is Github username available, then the Github gravatar or identifcon is displayed with a link to Github profile page
  • If the commiter was not a Github author, then the committer’s name is displayed on a blank image

5. Limitations

Currently the authors are resolved on the client-side using Github public API. This is suitable for low traffic documentation hosting.

  • Resolving authors during the documentation build time increases the build time considerably
  • With large documentation builds you might hit Github API throttling threshold, making it difficult to do continuous documentation builds

6. Source code and issue tracking

See the project on Github.

7. Other

The extension uses git command and Python sh library to extract the Git repository information. Transparency client-side semantic templating library is used to generate DOM tree for face links from Github API JSON.

This project was created in the Plone Conference 2013 with awesome people, many caipirinhas and a lot of fun.

Buy open source friendly bitcoins  Subscribe to this blog in a reader Follow me on Twitter Follow me on Facebook Follow me Google+

2 thoughts on “This documentation was brought you by these awesome people

  1. awesome!
    altough, when renaming, if someone does a “mv A.txt to B.rst“ and not a “git mv A.txt to B.rst“, the git history gets lost.

  2. Well it’s hard to teach people to properly use git or fix underlying git issues :(

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>