Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

IPySlides

Create Interactive Slides in Jupyter/Voila with all kind of rich content.


Changelog

Above version 1.4.0, users can see upto date documentation via ipyslides.Slides().docs(), so no additional changelog will be created in future. See old changelog


Install

> pip install ipyslides
> pip install ipyslides[extra]

For development install, clone this repository and then

> cd ipyslides
> pip install -e .

Jupyter Notebook version 7 is supported same way as Jupyter Lab in ipyslides >= 1.8.5


Creating Slides

Inside Jupyter Notebook:

#------------ Cell 1 --------------------
import ipyslides as isd 
slides = isd.Slides(**settings_kwargs) # settings_kwargs are added in 1.4.1
slides.settings.set_animation(main='zoom') # can be changed per slide in 1.7.6+
slides.xmd_syntax # Gives you information what you can do with markdown 1.7.2+
#------------ Cell 2 --------------------
%%title
# create a rich content title page
#------------ Cell 3 --------------------
%%slide 1 
# slide 1 content
#------------ Cell 4 --------------------
%%slide 1 -m # new in 1.4.6
Markdown here with extended options such as alert`this will be alerted in slides`. Nested blocks are not supported
    ```multicol 30 70
    less content
    +++
    more content in ||side by || side columns||. 
    ```
    ```python run source
    x = 1 + 2
    slides.write([x, source])
    ```
{{source}} will be shown in start here as well. Expressions are are not supported.

(1.8.9+) two dashes --- on their own line create multiple frames
#------------ Cell 5 --------------------
@slides.frames(1,*objs)
def func(obj):
    write(obj) #This will create as many slides after the slide number 1 as length(objs)
#------------ Cell 6 --------------------
slides # This displays slides if on the last line of cell, or use `slides.show()`.

You can load slides from a markdown file

slides separator should be --- (three dashes) frames separator should be -- (two dashes)

slides.from_markdown(start, path)
with slides.slide(2):
    write(slides[2].markdown) # write content of slide 2 from file
    plot_something() # Add other things to same file
    write_something()

You can see documentation slides with:

slides.docs()

You can see a rich content demo of slides with:

slides.demo()

Check out slides.glassmorphic and slides.clipboard_image in 2.0.1+.

You can build html of slides

Content type is limited. Widgets can not be exported.

slides.export.report() # >= 1.6
slides.export.slides() # HTML Slides

When exported to HTML and then PDF is printed, this gives a clean document.

Content Types to Embed

You can embed anything that you can include in Jupyter notebook like ipywidgets,HTML,PDF,Videos etc.,including jupyter notebook itself!

Note: Websites may refuse to load in iframe.

IPython Display Objects

Any object with following methods could be in write command: _repr_pretty_, _repr_html_, _repr_markdown_, _repr_svg_, _repr_png_, _repr_jpeg_, _repr_latex_, _repr_json_, _repr_javascript_, _repr_pdf_ Such as IPython.display.<HTML,SVG,Markdown,Code> etc. or third party such as plotly.graph_objects.Figure.

Plots and Other Data Types (0.8.7+)

These objects are implemented to be writable in write command: matplotlib.pyplot.Figure, altair.Chart, pygal.Graph, pydeck.Deck, pandas.DataFrame, bokeh.plotting.Figure. Many will be extentended in future. If an object is not implemented, use display(obj) to show inline or use library's specific command to show in Notebook outside write.

Interactive Widgets

Any object in ipywidgets or libraries based on ipywidgtes such as bqplot,ipyvolume,plotly's FigureWidget can be included in iwrite command. iwrite also renders other objects except Javascript.

Custom and Third Party Objects(not implemented in this library)

Starting version 1.6.1, you can add serialization method in current namespace. For example you can do something like this

@slides.serializer.register(int)
def colorize(obj):
    color = 'red' if obj % 2 == 0 else 'green'
    return f'<span style="color:{color};">{obj}</span>'

slides.write(*range(10))
# This will color even odd integers differently

Markdown Extensions

In 1.7.7+ you can install extensions of markdown e.g. PyMdown and use them as follows:

slides.extender.extend(extension)

Full Screen Presentation

  • Jupyterlab 3.0+ has full screen eneabled from any view:

  • Use Voila for full screen prsentations. Your notebook remains same, it is just get run by Voila, may not work as expected.

  • Slides in Jupyter Lab are theme aware in Inherit theme mode, so theme of slides changes based on editor theme.


PDF printing

To include all type of objects you need to make PDF manually. Read instructions in side panel about PDF printing. See PDF-Slides If you just have HTML objects like matplotolib plots, images, plotly, bokeh charts etc. and not something like ipywidgets, see next section.

HTML/PDF Report/Slides [HTML Slides in 1.5.2+]

  • You can create beautiful HTML/PDF report from slides using slides.export.report. See PDF-Report
  • You can use CSS classes .report-only and .slides-only to create different content for both sceberios. Content variety is limited. Widgets can not be exported.
  • Use slides.export.slides to build static slides that you can print as well. Widgets are not exported.

Speaker Notes (1.2.0+) (Experimental)

  • You can turn on speaker notes with a Show Notes check in side panel. Notes can be added to slides using slides.notes.insert (slides.notes in < 1.2.1) command.
  • Notes is an experimantal feuture, so use at your own risk. Do not share full screen, share a brwoser tab for slides and you can keep notes hidden from audience this way.

Known Limitations

  • 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. In version 2.2.5+ you can use property Slides.AutoSlide().[title,slide,frames,from_markdown] inside Python script.
  • Bounding box of slides for screenshots should be set by user (if not in fullscreen).

Customize Slides

You can customize slides by inheriting from Slides class. For example if you want to have custom theme and some other settings always enabled and bottom information only on title slide, you can do so:

class CustomSlides(isd.Slides):
    def __init__(self):
        super().__init__()
        self.settings.theme_dd.value = 'Custom'
        self.progress_slider.observe(self.set_visible, names=['index'])
    
    def set_visible(self, change):
        if self.progress_slider.index == 0:
            self.widgets.footerbox.layout.visibility = 'visible'
        else:
            self.widgets.footerbox.layout.visibility = 'hidden'

Very thankful to Python-Markdown which enabled to create write command as well as syntax highliting.

Metadata

Release files for ipyslides 2.3.2rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ipyslides 2.3.2rc1
File Size Uploaded
ipyslides-2.3.2rc1.tar.gz 6.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ipyslides 2.3.2rc1
File Interpreter ABI Platform
ipyslides-2.3.2rc1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 112.0 kB

Release files / ipyslides-2.3.2rc1.tar.gz

Download URL ipyslides-2.3.2rc1.tar.gz
Size 6.6 kB
Tags Source
SHA-256 checksum
How to use checksums
210929a177435847242d0904afb186e6f91ca2c78d285673fea51cedc92fc6e5
BLAKE2b-256 checksum
How to use checksums
b190966b08b5e2a1122f54f291cae77ddc5dae8f16f117d5ac8bef39a9e4161d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/65.3.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6

Release files / ipyslides-2.3.2rc1-py2.py3-none-any.whl

Download URL ipyslides-2.3.2rc1-py2.py3-none-any.whl
Size 105.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
9c64789cac60109a9534784ce74a1b9ad0879077995172d190293f1c25116e6d
BLAKE2b-256 checksum
How to use checksums
aba8c1ece91abf72cdcb5e7778edd77e3a40db9123809889c8aa1d732fc9ab3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/65.3.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.6

Release history Release notifications | RSS feed

7.4.56

2 release files

7.4.55

2 release files

7.4.54

2 release files

7.4.53

2 release files

7.4.52

2 release files

7.4.51

2 release files

7.4.5

2 release files

7.4.4

2 release files

7.4.3

2 release files

7.4.2

2 release files

7.4.1

2 release files

7.4.0

2 release files

7.3.89

2 release files

7.3.88

2 release files

7.3.87

2 release files

7.3.86

2 release files

7.3.85

2 release files

7.3.84

2 release files

7.3.8

2 release files

7.3.7

2 release files

7.3.6

2 release files

7.3.5

3 release files

7.3.4

2 release files

7.3.3

2 release files

7.3.2

2 release files

7.3.1

2 release files

7.3.0

2 release files

7.2.1

2 release files

7.2.0

2 release files

7.1.9

2 release files

7.1.8

2 release files

7.1.7

2 release files

7.1.6

2 release files

7.1.5

2 release files

7.1.4

2 release files

7.1.3

2 release files

7.1.2

2 release files

7.1.1

2 release files

7.1.0

2 release files

7.0.9

2 release files

7.0.8

2 release files

7.0.7

2 release files

7.0.6

2 release files

7.0.5

2 release files

7.0.4

2 release files

7.0.3

2 release files

7.0.2

2 release files

7.0.1

2 release files

7.0.0

2 release files

6.9.9

2 release files

6.9.8

2 release files

6.9.7

2 release files

6.9.6

2 release files

6.9.5

2 release files

6.9.3

2 release files

6.9.2

2 release files

6.9.1

2 release files

6.9.0

2 release files

6.8.8

2 release files

6.8.7

2 release files

6.8.6

2 release files

6.8.5

2 release files

6.8.4

2 release files

6.8.3

2 release files

6.8.2

2 release files

6.8.1

2 release files

6.8.0

2 release files

6.7.9

2 release files

6.7.8

2 release files

6.7.7

2 release files

6.7.6

2 release files

6.7.5

2 release files

6.7.4

2 release files

6.7.3

2 release files

6.7.2

2 release files

6.7.1

2 release files

6.7.0

2 release files

6.6.9

2 release files

6.6.8

2 release files

6.6.7

2 release files

6.6.6

2 release files

6.6.5

2 release files

6.6.4

2 release files

6.6.3

2 release files

6.6.2

2 release files

6.6.1

2 release files

6.6.0

2 release files

6.5.7

2 release files

6.5.6

2 release files

6.5.5

2 release files

6.5.4

2 release files

6.5.3

2 release files

6.5.2

2 release files

6.5.1

2 release files

6.5.0

2 release files

6.2.2

2 release files

6.2.1

2 release files

6.2.0

2 release files

6.1.9

2 release files

6.1.8

2 release files

6.1.7

2 release files

6.1.6

2 release files

6.1.5

2 release files

6.1.4

2 release files

6.1.3

2 release files

6.1.1

2 release files

6.1.0

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.9.6

2 release files

5.9.5

2 release files

5.9.4

2 release files

5.9.3

2 release files

5.9.2

2 release files

5.9.1

2 release files

5.9.0

2 release files

5.8.94

2 release files

5.8.93

2 release files

5.8.92

2 release files

5.8.91

2 release files

5.8.9

2 release files

5.8.8

2 release files

5.8.7

2 release files

5.8.6

2 release files

5.8.5

2 release files

5.8.4

2 release files

5.8.3

2 release files

5.8.2

2 release files

5.8.1

2 release files

5.8.0

2 release files

5.7.9

2 release files

5.7.8

2 release files

5.7.6

2 release files

5.7.5

2 release files

5.7.4

2 release files

5.7.3

2 release files

5.7.2

2 release files

5.7.1

2 release files

5.7.0

2 release files

5.6.9

2 release files

5.6.8

2 release files

5.6.7

2 release files

5.6.6

2 release files

5.6.5

2 release files

5.6.4

2 release files

5.6.3

2 release files

5.6.2

2 release files

5.6.1

2 release files

5.6.0

2 release files

5.5.9

2 release files

5.5.8

2 release files

5.5.7

2 release files

5.5.6

2 release files

5.5.5

2 release files

5.5.4

2 release files

5.5.3

2 release files

5.5.2

2 release files

5.5.1

2 release files

5.5.0

2 release files

5.4.9

2 release files

5.4.8

2 release files

5.4.6

2 release files

5.4.5

2 release files

5.4.4

2 release files

5.4.3

2 release files

5.4.2

2 release files

5.4.1

2 release files

5.4.0

2 release files

5.3.9

2 release files

5.3.8

2 release files

5.3.7

2 release files

5.3.6

2 release files

5.3.5

2 release files

5.3.3

2 release files

5.3.2

2 release files

5.3.1

2 release files

5.3.0

2 release files

5.2.9

2 release files

5.2.6

2 release files

5.2.5

2 release files

5.2.4

2 release files

5.2.3

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.1.8

2 release files

5.1.7

2 release files

5.1.6

2 release files

5.1.5

2 release files

5.1.4

2 release files

5.1.3

2 release files

5.1.2

2 release files

5.1.1

2 release files

5.1.0

2 release files

5.0.9

2 release files

5.0.8

2 release files

5.0.7

2 release files

5.0.6

2 release files

5.0.5

2 release files

5.0.4

2 release files

5.0.3

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.9.9

2 release files

4.9.8

2 release files

4.9.7

2 release files

4.9.6

2 release files

4.9.5

2 release files

4.9.4

2 release files

4.9.3

2 release files

4.9.2

2 release files

4.9.1

2 release files

4.9.0

2 release files

4.8.9

2 release files

4.8.8

2 release files

4.8.7

2 release files

4.8.6

2 release files

4.8.5

2 release files

4.8.4

2 release files

4.8.3

2 release files

4.8.2

2 release files

4.8.1

2 release files

4.8.0

2 release files

4.7.9

2 release files

4.7.8

2 release files

4.7.7

2 release files

4.7.6

2 release files

4.7.5

2 release files

4.7.4

2 release files

4.7.3

2 release files

4.7.2

2 release files

4.7.1

2 release files

4.7.0

2 release files

4.6.9

2 release files

4.6.8

2 release files

4.6.7

2 release files

4.6.6

2 release files

4.6.5

2 release files

4.6.4

2 release files

4.6.3

2 release files

4.6.2

2 release files

4.6.1

2 release files

4.6.0

2 release files

4.5.9

2 release files

4.5.8

2 release files

4.5.7

2 release files

4.5.6

2 release files

4.5.5

2 release files

4.5.4

2 release files

4.5.3

2 release files

4.5.2

2 release files

4.5.1

2 release files

4.5.0

2 release files

4.4.9

2 release files

4.4.8

2 release files

4.4.7

2 release files

4.4.6

2 release files

4.4.5

2 release files

4.4.4

2 release files

4.4.3

2 release files

4.4.1

2 release files

4.4.0

2 release files

4.3.9

2 release files

4.3.8

2 release files

4.3.7

2 release files

4.3.6

2 release files

4.3.5

2 release files

4.3.4

2 release files

4.3.3

2 release files

4.3.2

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.7

2 release files

4.2.6

2 release files

4.2.5

2 release files

4.2.4

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.9

2 release files

4.0.8

2 release files

4.0.7

2 release files

4.0.6

2 release files

4.0.5

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.9.9

2 release files

3.9.7

2 release files

3.9.6

2 release files

3.9.5

2 release files

3.9.4

2 release files

3.9.3

2 release files

3.9.2

2 release files

3.9.1

2 release files

3.9.0

2 release files

3.8.9

2 release files

3.8.8

2 release files

3.8.7

2 release files

3.8.6

2 release files

3.8.5

2 release files

3.8.4

2 release files

3.8.2

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.6

2 release files

3.7.5

2 release files

3.7.4

2 release files

3.7.3

2 release files

3.7.2

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.9

2 release files

3.6.8

2 release files

3.6.7

2 release files

3.6.6

2 release files

3.6.5

2 release files

3.6.4

2 release files

3.6.3

2 release files

3.6.2

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.9

2 release files

3.5.8

2 release files

3.5.7

2 release files

3.5.6

2 release files

3.5.5

2 release files

3.5.4

2 release files

3.5.3

2 release files

3.5.2

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.3

2 release files

3.4.2

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.9

2 release files

3.2.8

2 release files

3.2.7

2 release files

3.2.6

2 release files

3.2.5

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.9

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.3.8

2 release files

2.3.7

2 release files

2.3.6

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

This release

2.3.2rc1 This release

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.9

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

2 release files

2.2.5

2 release files

2.2.4

2 release files

2.2.3

3 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.9

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.8.9

2 release files

1.8.8

2 release files

1.8.7

2 release files

1.8.6

2 release files

1.8.5

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.9

2 release files

1.7.8

2 release files

1.7.7

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.9

2 release files

1.6.8

2 release files

1.6.7

2 release files

1.6.6

2 release files

1.6.5

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.9

2 release files

1.5.8

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.10

2 release files

1.4.9

2 release files

1.4.8

2 release files

1.4.7

2 release files

1.4.6

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.9

2 release files

1.3.8

2 release files

1.3.7

2 release files

1.3.6

2 release files

1.3.5

2 release files

1.3.4

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.11

2 release files

0.8.10

2 release files

0.8.9

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.5

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page