Skip to main content

Next generation slides from Jupyter Notebooks

Project description

nbpresent
=========

|image0| |image1| |image2|

remix your `Jupyter Notebooks <http://jupyter.org>`__ as interactive
slideshows

.. figure:: ./screenshot.png
:alt:

.. |image0| image:: https://anaconda.org/anaconda-nb-extensions/nbpresent/badges/build.svg
:target: https://anaconda.org/anaconda-nb-extensions/nbpresent/builds
.. |image1| image:: https://anaconda.org/anaconda-nb-extensions/nbpresent/badges/installer/conda.svg
:target: https://anaconda.org/anaconda-nb-extensions/nbpresent
.. |image2| image:: https://img.shields.io/pypi/v/nbpresent.svg
:target: https://pypi.python.org/pypi/nbpresent

Using
-----

After `installing <#install>`__ (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 <https://groups.google.com/forum/#!forum/nbpresent>`__
for general or long-term discussion and announcements
- `issues <https://github.com/Anaconda-Server/nbpresent/issues>`__ for
technical issues, as well as feature requests
- `chat <https://gitter.im/Anaconda-Server/nbpresent>`__ for quickly
connecting with other users

Related Projects
----------------

- `live\_reveal/RISE <https://github.com/damianavila/RISE>`__, the
original inspiration for this work, based on
`reveal.js <https://github.com/hakimel/reveal.js/>`__.
- `RMarkdown <http://rmarkdown.rstudio.com/ioslides_presentation_format.html>`__
presentations

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 <#develop>`__ below.

``pip``
~~~~~~~

.. code:: shell

pip install nbpresent
python -m nbpresent.install

Then either run

.. code:: python

%reload_ext nbpresent

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

.. code:: shell

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

``nbpresent.install`` accepts all of the same arguments as
``jupyter nbextension install``.

``conda``
~~~~~~~~~

.. code:: shell

conda install -c anaconda-nb-extensions nbpresent

This will enable ``nbpresent`` by default.

Export
------

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

.. code:: shell

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

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

If you have installed
`nbbrowserpdf <https://github.com/Anaconda-Server/nbbrowserpdf>`__, you
can also export to pdf:

.. code:: shell

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

You can also pass in and get back streams:

.. code:: shell

cmd_that_generates_ipynb | nbpresent -f pdf > README.pdf

Here's the whole doc:

.. code:: python

!nbpresent --help


.. parsed-literal::

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-Server/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 <https://www.continuum.io/downloads>`__ or
`miniconda <http://conda.pydata.org/miniconda.html>`__. You can import a
Python 3.5 development environment named ``nbpresent`` from
``./environment.yml``.

.. code:: shell

conda update env
source activate nbpresent

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

.. code:: shell

npm install
npm run build

Ensure development asset loading
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

.. code:: shell

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

If developing in a `conda <http://conda.pydata.org/docs/>`__
environment, you would want to pass in ``--prefix`` instead of
``--user``.

Chore Automation
~~~~~~~~~~~~~~~~

+---------+------------+
| Task | Command |
+=========+============+
| Build | ``npm run |
| all of | build`` |
| the | |
| front | |
| end | |
| assets | |
| with | |
| sourcem | |
| aps | |
| for | |
| develop | |
| ment | |
+---------+------------+
| Rebuild | ``npm run |
| on | watch`` |
| every | |
| save | |
+---------+------------+
| Rebuild | ``npm run |
| all of | dist`` |
| the | |
| front | |
| end | |
| assets, | |
| and | |
| optimiz | |
| e | |
| it | |
+---------+------------+
| Run the | ``npm run |
| CasperJ | test`` |
| S | |
| and | |
| ``nose` | |
| ` | |
| tests | |
+---------+------------+
| Check | ``npm run |
| code | lint`` |
| style | |
+---------+------------+
| Build | ``npm run |
| the | pkg:conda` |
| conda | ` |
| package | |
+---------+------------+
| Build | ``npm run |
| **and | pkg:pypi`` |
| upload* | |
| * | |
| the | |
| pypi | |
| package | |
+---------+------------+
| Build | ``npm run |
| the | docs`` |
| ESDoc | |
| and | |
| Sphinx | |
| documen | |
| tation | |
+---------+------------+

Changelog
---------

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 <https://github.com/Anaconda-Server/nbpresent/issues/58>`__
- adding JS extensibility of themes (partial
`#44 <https://github.com/Anaconda-Server/nbpresent/issues/44>`__)
- see `Extending
nbpresent <https://github.com/Anaconda-Server/nbpresent/blob/master/notebooks/Extending%20nbpresent.ipynb>`__

1.0.0
~~~~~

- `Theme
editor <https://github.com/Anaconda-Server/nbpresent/pull/41>`__
- Much more consistent UI
- Mnay bug fixes and more testing

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nbpresent-2.0.0.tar.gz (303.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nbpresent-2.0.0-py2.py3-none-any.whl (446.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file nbpresent-2.0.0.tar.gz.

File metadata

  • Download URL: nbpresent-2.0.0.tar.gz
  • Upload date:
  • Size: 303.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nbpresent-2.0.0.tar.gz
Algorithm Hash digest
SHA256 1e66d902b5c6459463548ad7cf5b121328fc4061ca0b70a3dc8bac9e6583556c
MD5 5f1b76d6a810666fd1cd09827d2ef865
BLAKE2b-256 a220137ec59404198d5a12144863c37b572fa6f589fd3d40eb675501022c324d

See more details on using hashes here.

File details

Details for the file nbpresent-2.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for nbpresent-2.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 78a6f846aed0598910cbf792b03510a414d7898627b6dfaeaa733403f8afed68
MD5 fddc989b9e14dfc5e4ee5dedba1a8195
BLAKE2b-256 2d70384ef700cceff42201126071458ccfdbdf6d2b8795bafb5f22c68812926b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page