Home Reference Source Repository

nbpresent

remix your Jupyter Notebooks as interactive slideshows

Installation

pip install nbpresent
python -m nbpresent.install

Then either run

%reload_ext nbpresent

every time you start the notebook or enable the extension for every notebook launch:

python -m nbpresent.install --enable

Export

Stock nbconvert doesn't store quite enough information, so you'll need to do something like this:

nbpresent -i notebooks/README.ipynb -o README.html

The resulting file can be hosted and viewed (but not edited!) on any site with fallback to Github.

If you have installed nbbrowserpdf, you can also export to pdf:

nbpresent -i notebooks/README.ipynb -f pdf -o README.pdf

You can also pass in and get back streams:

cmd_that_generates_ipynb | nbpresent -f pdf > README.pdf

Here's the whole doc:

!nbpresent --help
usage: nbpresent [-h] [-i IPYNB] [-o OUTFILE] [-f {html,zip,pdf}]

Generate a static nbpresent presentation from a Jupyter Notebook

optional arguments:
  -h, --help            show this help message and exit
  -i IPYNB, --ipynb IPYNB
                        Input file (otherwise read from stdin)
  -o OUTFILE, --outfile OUTFILE
                        Output file (otherwise write to stdout)
  -f {html,zip,pdf}, --out-format {html,zip,pdf}
                        Output format

Development

This assumes you have cloned this repository locally:

git clone https://github.com/Anaconda-Server/nbpresent.git
cd nbpresent

Repo Architecture

The nbpresent nbextension is built from ./src into ./nbpresent/static/nbresent with:

The nbpresent python module (server component) is stored in the /nbpresent folder

Getting Started

You'll need conda installed, either from Anaconda or miniconda. You can import a Python 3.5 development environment named nbpresent from ./environment.yml.

conda update env
source activate nbpresent

We still use npm for a lot of dependencies, so then run:

npm install
npm run build:all

Ensure development asset loading

To ensure that you always get the right assets, install the nbextension with the symlink, force and enable options:

python -m nbpresent.install --overwrite --symlink --enable --user

You may also want to pass in --prefix instead of user.

Chore Automation

Task Command
Build all of the front end assets with sourcemaps for development npm run build
Rebuild on every save npm run watch
Rebuild all of the front end assets, and optimize it npm run dist
Run the CasperJS and nose tests npm run test
Check code style npm run lint
Build the conda package npm run pkg:conda
Build and upload the pypi package npm run pkg:pypi
Build the ESDoc and Sphinx documentation npm run docs