Skip to main content

Reveal.js - Jupyter/IPython Slideshow Extension

Project description

#RISE

**Reveal.js - Jupyter/IPython Slideshow Extension**, also known as *live_reveal*

[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/damianavila/RISE)

## Installation

>From the most simple to the most complex one, you have 3 options:

1 - Using conda (recommended):

```
conda install -c damianavila82 rise
```

2 - Using pip (less recommended):

```
pip install RISE
```
and then two more steps to install the JS and CSS in the proper places:

```
jupyter-nbextension install rise --py --sys-prefix
```

and enable the nbextension:

```
jupyter-nbextension" enable rise --py --sys-prefix
```

3 - The old way (are sure sure you want to go this path?):

To install this nbextension, simply run ``python setup.py install`` from the
*RISE* repository (please use the latest tag available or try master if you want).

And then the same two step described in the pip-based installation:

```
jupyter-nbextension install rise --py --sys-prefix
```

and

```
jupyter-nbextension" enable rise --py --sys-prefix
```

Conclusion: If you use conda, life will be easy ;-)

**NOTE**: in alll the options available the `--sys-prefix` option will install and
enable the extension in the current environment, if you want a `--user` based or a
`--system` based installation just use those option instead in the above commands.

## RISE talk

My old talk about **RISE** at *SciPy 2014* (click on the image to see it):

[![RJSE/RISE video](http://img.youtube.com/vi/sZBKruEh0jI/0.jpg)](https://www.youtube.com/watch?v=sZBKruEh0jI)

## RISElet

Coming soon... in fact it is on master but I need to explain how to use it ;-)

## About

As you know... we love **Jupyter/IPython** and we like **Reveal.js** too.

Previously, we developed a "converter" for the `nbconvert` library to
export a `ipynb` to a *STATIC* html slideshow based in **Reveal.js** library.

But with RISE, you don't have a *STATIC* version anymore, you have a **LIVE**
version! A notebook **rendered** as a **Reveal.js**-based slideshow,
where you can **execute** code or show to the audience whatever you can show/do
inside the notebook itself (but in a "slidy" way).

## Versions

1- **RISE** master branch will be following the **Jupyter** codebase.

2- There is also "released" tagged [branches](https://github.com/damianavila/RISE/releases)
compatible with previous IPython versions:

* 1.x tag compatible with **IPython** 1.x series
* 2.x tag compatible with **IPython** 2.x series
* 3.x tag compatible with **IPython** 3.x series
* 3.x.1 tag also compatible with `notebook` 4.x series, but using old installation mechanism
* 4.0.0b1 tag compatible with the `notebook` 4.2 and above, beta release, please test and report any issues

3- With **Jupyter** landing we will provide a conda and pip-instalable packages too

**NOTE**: We will only maintain the latest released version.

## Usage

In the notebook toolbar, a new button ("Enter/Exit Live Reveal Slideshow")
will be available.

In the notebook menu, the "View" option contains a "Cell Toolbar" sub-menu that gives
you access to the metadata for each cell. If you select the Slideshow preset, you
will see in the right corner of each cell a little box where you can select
the cell type (similar as for the static reveal slides with nbconvert).

Some notes:

1- Use ``spacebar`` to go forward and ``shift+spacebar`` to go backward (or the
visual controller in the slideshow right bottom corner). ``Up`` and ``down`` arrows are reserved to
interact with notebook cells and cannot be used to navigate the slides, instead
you can use ``pgup`` and ``pgdown``.

2- You can know more about the reveal-specific shortcuts just pressing the help
button at the slideshow left bottom corner.

3- In contrast to the traditional Jupyter notebook, the ``Shift-Enter``
shortcut does not select the next cell, but will only run the cell (same as
``Ctrl-Enter``). This is intentional to not switch slides by running a cell
and because some problem arises when you inject new cells on the fly.
When you exit the presentation mode, the behavior comes back to normal.

4- Darkish themes have css conflict with the notebook css, so it need customization
to make them work (not provided by default).

## Configure your own options

You can configure the `theme`, the `transition`, and from where the slideshow starts with:

```
from traitlets.config.manager import BaseJSONConfigManager
path = "/home/damian/miniconda3/envs/rise_latest/etc/jupyter/nbconfig"
cm = BaseJSONConfigManager(config_dir=path)
cm.update('livereveal', {
'theme': 'sky',
'transition': 'zoom',
'start_slideshow_at': 'selected',
})
```

`path` is where the `nbconfig` is located (for possible different locations,
depending on where did you "install" and "enable" the nbextension, check this docs:
http://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html and
http://jupyter-notebook.readthedocs.io/en/latest/frontend_config.html).

With these options, your slides will get the `serif` theme and the
`zoom` transition and the slideshow will start from the selected cell (instead
of from the beginning, which is the default).

You can use a similar piece of python code to change the `width` and
`height` of your slides:

```python
cm.update('livereveal', {
'width': 1024,
'height': 768,
})
```

Or to enable a right scroll bar for your content exceeding the slide vertical height with:

```python
cm.update('livereveal', {
'scroll': True,
})
```

There are also options for `controls`, `progress`, `history`, `minScale` and
`slideNumber`.

**Note**: The use of the `minScale` option (values other then `1.0`) can cause
problems with codemirror.

### Alternative configuration method
You can put reveal.js configuration in your notebook metadata (Edit->Edit Notebook Metadata) like this:
```
{
"livereveal": {
"theme": "serif",
"transition": "zoom",
...
},
"kernelspec": {...}
}
```

## Usage with Leap Motion

**Reveal.js** supports the [Leap Motion](https://www.leapmotion.com) controller.
To control RISE slides with the Leap, put the
[reveal leap plugin options](https://github.com/hakimel/reveal.js#leap-motion)
in your config by running this Python code:

```python
cm.update('livereveal', {
'leap_motion': {
'naturalSwipe' : True, # Invert swipe gestures
'pointerOpacity': 0.5, # Set pointer opacity to 0.5
'pointerColor' : '#d80000',# Red pointer
}
})
```

To disable it:

```python
cm.update('livereveal', {'leap_motion': None})
```

## Development

You can install RISE in development mode in this way:

```bash
git clone https://github.com/damianavila/RISE.git
pip install -e .
jupyter-nbextension install rise --py --sys-prefix --symlink
jupyter-nbextension enable rise --py --sys-prefix
```

Note for developers: the --symlink argument allow you to modify the JavaScript code in-place.
This feature is probably not available in Win. So you will need to "re-install" the nbextension
to actually see any changes you made.

To build the CSS assets, you'll need to install `npm` (and `node`).

```bash
npm install
npm run build
```

To have per-save automatic building of CSS, use:
```bash
npm run watch-less
```

## Changelog

Lazy changelog: https://github.com/damianavila/RISE/milestone/1?closed=1

## Feedback

If you have any feedback, or find any bugs, please let me know just opening
an issue.

Thanks!

Damián.


Project details


Download files

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

Source Distributions

rise-4.0.0b1.zip (359.0 kB view details)

Uploaded Source

rise-4.0.0b1.tar.gz (325.2 kB view details)

Uploaded Source

Built Distribution

rise-4.0.0b1-py2.py3-none-any.whl (360.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file rise-4.0.0b1.zip.

File metadata

  • Download URL: rise-4.0.0b1.zip
  • Upload date:
  • Size: 359.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rise-4.0.0b1.zip
Algorithm Hash digest
SHA256 245ef63279af0d49203e45ab44a5d982b9586193e00d07513243ec91b03b2337
MD5 71452f9798c967eab8802645e65d82b7
BLAKE2b-256 b3fc80f235926559aad1a6d52a250ebbda5e4e7325cb55c857a0467704c7a459

See more details on using hashes here.

File details

Details for the file rise-4.0.0b1.tar.gz.

File metadata

  • Download URL: rise-4.0.0b1.tar.gz
  • Upload date:
  • Size: 325.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rise-4.0.0b1.tar.gz
Algorithm Hash digest
SHA256 b15a66a6a3e8eac6f1810ae0a55138d74263d361bffad2a7375ab60ee19d7155
MD5 a58837dca00f8ed60ccb2ceb0c8542d2
BLAKE2b-256 3746e0e4c148f6a9fdd58667151a9f33b1bbec3ca6876a5f6132448c9b039d2f

See more details on using hashes here.

File details

Details for the file rise-4.0.0b1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for rise-4.0.0b1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9dee07a792340f1b032026f8105e12d383127560da75998f51de43452f19d72f
MD5 1d317040a749787cc55b209f59cd83b0
BLAKE2b-256 2064b01e63dc1b3827549e0924196815249cd1c2fd58b4e17827a4501f73e474

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