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-hypernode.com/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-Platform/nbpresent/issues>`__
for technical issues, as well as feature requests
- `chat <https://gitter.im/Anaconda-Platform/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-Platform/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-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 <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
---------

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

1.0.0
~~~~~

- `Theme
editor <https://github.com/Anaconda-Platform/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-3.0.0.tar.gz (302.5 kB view details)

Uploaded Source

Built Distribution

nbpresent-3.0.0-py2.py3-none-any.whl (312.6 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for nbpresent-3.0.0.tar.gz
Algorithm Hash digest
SHA256 023a1303ed41dd1b3a3c9874655e48c11159bc39252c32f9e24725ff69079d9e
MD5 8b6c3ef1caf962f17c444ad5226b3806
BLAKE2b-256 76bddcc2eb06a0a2bbe5158e5473bd38acfc2581c939cc52090e44fadc474772

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nbpresent-3.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5c73625282b18dc289ab9aee73d4d1bf55c15b5ada992e3c050031c464dc99a3
MD5 e29a5fc4c58d8343000c3b9a9ee2ca56
BLAKE2b-256 d5b3431d59443d075e90e266af345d43928399b76c411e3ea273182ecd65c13f

See more details on using hashes here.

Supported by

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