Cookiecutter Dash docset

Automating the generation of documentation for scientific Python libraries

Dash is an app1 that lets you instantly search through documentation sets offline. Hynek Schlawack has a great writeup on the benefits of using Dash. If you find yourself with dozen of documentation tabs open or repeatedly searching for the same APIs, Dash might be useful for you.

Demo of Dash searching docs

Dash comes with a few documentation sets, but if a library isn't included you can always generate your own.2 You can contribute your documentation sets to Kapeli/Dash-User-Contributions to make them available to others.

However, if you want to keep things up to date, each time new version of a library releases you need to:

  1. Clone the library
  2. Reinstall the dependencies
  3. Rebuild the docs
  4. Convert the docs to a Dash-compatible documentation set
  5. Create a pull request for Kapeli/Dash-User-Contributions

I personally have contributed and maintain over 6 different docsets, so going through all of these steps each time a library makes a new release is tedious. As a result, many documentation sets don't keep up with their libraries and go stale.

Cookiecutter Dash docset generates a repository that automates this process. After generating the project and modifying the template in a couple of key areas, you should have a repository that specifies the entire docset building process and automatically re-runs it on GitHub Actions with a new release of the library.

Upon detecting a new project release, this project should automatically:

  1. Build a new Dash documentation set
  2. Contribute the docset to Kapeli/Dash-User-Contributions

See more information about this project's features in the documentation.

Using this, I've currently automated the docsets of six different Python libraries:

These repositories automatically generate pull requests against against Kapeli/Dash-User-Contributions every time any of these libraries has a new release—keeping docsets up to date for me and other Dash users.


  1. There are multiple alternatives as well—like Zeal, Velocity, Helm Dash, and dasht 

  2. Tools like doc2dash help automate some of the generation.