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.
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.
Table Of Content
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
2. Examples
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
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.
Subscribe to RSS feed Follow me on Twitter Follow me on Facebook Follow me Google+
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.
Well it’s hard to teach people to properly use git or fix underlying git issues 🙁