sphinxtogithub is a Python script for preparing the HTML output of the Sphinx documentation system for github pages.
It renames any top level folders which start with an underscore and edits any references to them within the html files.
GitHub processes the incoming html with Jekyll which believes top level folders starting with an underscore are special and does not let their content be accessible to the server. This is incompatible with Sphinx which uses underscores at the start of folder names for static content.
The sphinxtogithub.py script can be run on the command line or used as a Sphinx extension.
Place the script on the PYTHONPATH and add sphinxtogithub to the extensions list in the conf.py file in your Sphinx project:
extensions = [ "sphinxtogithub" ]
Additionally there are two config variables you can use to control the extension. The first enables/disables the extension and the second enables verbose output. They are True by default:
sphinx_to_github = True
sphinx_to_github_verbose = True
Run the script with the path to the html output directory as the first argument. There is a --verbose flag for basic output.