Tools

There are several major tools that we have developed, or are contributing to, as a part of this project. This page describes a few major components.

Jupyter Book

Jupyter Book is an open source project for building beautiful, publication-quality books and documents from computational material.

Jupyter Book has the following main features:

Note

Jupyter Book gets most of its functionality from the collection of open source tools listed below. You can use each tool on its own for your own purposes, or bring them together with Jupyter Book.

MyST - Markedly Structured Text

(link to documentation)

MyST allows you to write Sphinx documentation entirely in markdown. It is an attempt to have the best of both worlds: the flexibility and extensibility of Sphinx with the simplicity and readability of Markdown.

MyST has the following main features:

MyST-NB

(link to documentation)

MyST-NB is an open source tool for working with Jupyter Notebooks in the Sphinx ecosystem. It provides the following primary features:

In addition, there are several options for controlling the look and feel of how your notebooks are used in your documentation.

Sphinx Book Theme

(link to documentation)

This is a lightweight Sphinx theme designed to mimic the look-and-feel of an interactive book. It has the following primary features:

Jupyter Cache

(link to documentation)

This packages provides a clear API and CLI for staging, executing and cacheing Jupyter Notebooks. Although there are certainly other use cases, the principle use case this was written for is generating books / websites, created from multiple notebooks (and other text documents), during which it is desired that notebooks can be auto-executed only if the notebook had been modified in a way that may alter its code cell outputs.

Markdown-it-py

(link to documentation)

Markdown parser done right. Fast and easy to extend.

markdown-it-py is a Python port of the very popular markdown-it package. Its goal is to remain as close as possible to the markdown-it API and plugin spec. Here are its main features:

A collection of Sphinx extensions

In addition to these major tools described above, the EBP also maintains a number of tools in the Sphinx ecosystem for writing beautiful online books and documents. For example: