Giter VIP home page Giter VIP logo

nbpresent's Introduction

nbpresent

Build Status (Lin64) Build Status (Win64) Coverage Status

remix your Jupyter Notebooks as interactive slideshows

Using

After installing (and potentially enabling) as appropriate for your environment, relaunch the Jupyter Notebook: in the main toolbar, you will get two new buttons that toggle the Authoring and Presenting modes.

User Documentation and Community

When Authoring, you can click on the (?) icon to see a number of in-Notebook guided tours that show all the features, as well as see links to community pages:

  • mailing list for general or long-term discussion and announcements
  • issues for technical issues, as well as feature requests
  • chat for quickly connecting with other users

Related Projects

Publishing

When you are happy with your presentation, you can download the standalone HTML file from the File -> Download as -> Presentation (.html) menu item.

Install

Note: installing directly off this repo won't work, as we don't ship the built JavaScript and CSS assets. See more about developing below.

pip

pip install nbpresent
jupyter nbextension install nbpresent --py --overwrite
jupyter nbextension enable nbpresent --py
jupyter serverextension enable nbpresent --py

conda

conda install -c conda-forge nbpresent

This will enable the nbpresent nbextension and serverextension automatically!

Export

HTML

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.

You can also pass in and get back streams:

cmd_that_generates_ipynb | nbpresent > README.html

PDF (Experimental)

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

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

Here's the whole doc:

!nbpresent --help
usage: nbpresent [-h] [-i IPYNB] [-o OUTFILE] [-f {html,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,pdf}, --out-format {html,pdf}
                        Output format

Develop

This assumes you have cloned this repository locally:

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

Repo Architecture

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

  • less for style
  • es6 (via babel) for javascript
  • browserify for packaging

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 create a Python development environment named nbpresent from ./environment.yml.

conda create -n nbpresent python=YOUR_FAVORITE_PYTHON
conda update env
source activate nbpresent

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

npm install

Finally, you are ready to build the assets!

npm run build

Ensure development asset loading

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

jupyter nbextension install nbpresent --overwrite --symlink --sys-prefix
jupyter nbextension enable nbpresent --sys-prefix
jupyter serverextension enable nbpresent --sys-prefix

See chore automation below for more good times.

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 and upload the pypi test package npm run pkg:pypi
Build and upload the pypi release package npm run pkg:pypi:release
Build the ESDoc and Sphinx documentation npm run docs

Changelog

3.0.2

3.0.1

  • minor build changes

3.0.0

  • Update to notebook 4.2

2.0.0

  • Theme editor removed. Significant work required to stabilize to public release quality.
  • Adding some themes extracted from reveal.js

1.1.1

  • fixing enabling on windows with nb_config_manager 0.1.3
  • trimming down conda packages
  • more reproducible builds

1.1.0 (Unreleased)

  • fixing issue with slides without regions and some layouts crashing editor #58
  • adding JS extensibility of themes (partial #44)

1.0.0

  • Theme editor
  • Much more consistent UI
  • Mnay bug fixes and more testing

nbpresent's People

Contributors

bollwyvl avatar damianavila avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.