Create interactive slides programatically in Jupyter/Voila with all kind of rich content.
- Launch Example Notebook
- See PDF-Slides
You can see upto date documentation via ipyslides.Slides().docs()
, so no additional changelog is created.
> pip install ipyslides
> pip install ipyslides[extra]
For development install, clone this repository and then
> cd ipyslides
> pip install -e .
In Jupyter Notebook:
import ipyslides as isd
slides = isd.Slides()
Please look at two presentations provided with Slides.docs()
, Slides.demo()
to see how slides are created. Moreover instruction in settings panel are at your finger tips.
You can embed anything that you can include in Jupyter notebook like ipywidgets, HTML, PDF, Videos etc.,including jupyter notebook itself!
- IPython Display Objects, see
IPython
module. - Plots and Other Data Types (matplotlib, plotly etc.)
- Jupyter Interactive Widgets (ipywidgets, bqplot ect.)
- Custom and Third Party Objects( which are not implemented in this library)
- You can display with
display
command or library's specific display method. - You can serialize custom objects to HTML using
Slides.serializer
API.
- You can display with
- You can extend markdown syntax using
Slides.extender
API. See some good extensions to add from PyMdown.
- Use
slides.export_html
to build static slides that you can print as well. - Content variety for export is limited. Widgets can not be exported unless an alternative representation is given by
Slides.alt
which also works to provide alternative export representation of any object. - Any object including widget can be replaced for export using
Slides.alt
function which lets you paste a screenshot of that object or it's alternative html representation at runtime or export time. - Paper width for printing is 10 inch (254mm) and height is determined by aspect ratio of slides.
- Use
Save as PDF
in browser to make links work in ouput PDF.
- You can turn on speaker notes with a
Show Notes
check in setting panel. See moduleSlides.notes
for details or see examples inSlides.demo()
.
Notes is an experimantal feature, so use at your own risk. Avoid if you can.
- Since Markdown is parsed using python (and we do not run notebook from outside e.g. with nbconvert), markdown cells are of no use. A better alternative is linking a markodwn file using
Slides.sync_with_file
and slides auto update when you save your edits. You can still write markdown in code cell with slide magic%%slide number -m
to add to slides. - Slide number is necessary to be tracked by user in notebook, because cells are not linked to each other and multiple runs of a cell can lead to adding many slides with same content. To minimize this difficulty, use
-1
in place of a slide number to add numbering automatically in Jupyter Notebook and python file! Other cell code is preserved. You may need to rerun cell if creating slides in a for loop.
- Slides application is based on ipywidgets.
- Rich display mechanism, and collection of cell output to slides heavily rely on IPython.
- Python-Markdown is extensily used for content and extended where needed.