JupyterLab extension for animated slideshow.
Project description
sliveshow
A JupyterLab extension that turns Jupyter notebooks into live, animated Reveal.js slideshows — with scrollable slides, SVG animations, and MyST directive support for Jupyter Book 2.
Install:
pip install sliveshow
PyPI: https://pypi.org/project/sliveshow/
Demo: https://alyanaamirahmedani.github.io/sliveshow/lab/index.html?path=sliveshow_demo.ipynb
(Run all cells before starting the slideshow to display animations correctly.)
Requirements
- JupyterLab >= 4.0.0
Install
pip install sliveshow
Uninstall
pip uninstall sliveshow
Usage
Slideshow
The slideshow uses the Reveal.js framework. Set the slide type of each cell via COMMON TOOLS > Slide Type. Available types: Slide, Sub-Slide, Fragment, Skip.
Transition type and duration are set per-cell in SLIDESHOW TOOLS. Available types: Slide, Fade, Zoom. The default can be changed in Settings.
For Slide transitions, direction is Horizontal (Slides) or Vertical (Sub-Slides) by default.
Code cell input can be hidden via Hide Code Cell, showing only the output.
To start a slideshow, use the Slideshow menu → Start from first cell or Start from current cell. To exit, press Escape or use Exit slideshow.
SVG Animation
SVG animations use the Reveal.js Animate plugin by Asvin Goel. Animations load after the slideshow starts.
Method A — Raw HTML in a markdown cell
Add a <div data-animate> block containing your SVG and a JSON config comment directly in a markdown cell:
<div data-animate>
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300">
<circle id="c1" cx="150" cy="150" r="60" style="fill:steelblue"/>
</svg>
<!--
{
"setup": [{
"element": "#c1",
"modifier": "attr",
"parameters": [{ "r": 100 }],
"duration": 1500,
"begin": 0
}]
}
-->
</div>
Method B — {svg-animate} MyST directive (recommended)
Use the {svg-animate} directive in a markdown cell. The same cell works in both the live Reveal.js slideshow and a static Jupyter Book 2 / mystmd export:
:::{svg-animate} Circle animation
:height: 320px
:background: white
<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'>
<circle id='c1' cx='150' cy='150' r='60' style='fill:steelblue'/>
</svg>
<!--
{
"setup": [{ "element": "#c1", "modifier": "attr", "parameters": [{ "r": 100 }], "duration": 1500, "begin": 0 }]
}
-->
:::
To enable {svg-animate} in a mystmd/Jupyter Book 2 build, add the plugin to your myst.yml:
project:
plugins:
- svg-animate.mjs
The svg-animate.mjs plugin file is included in the Demo/ folder.
The JSON config controls the animation. setup runs on load; animation runs per fragment. See the Animate plugin README for full options.
MathJax SVG
MathJax 4 converts math expressions into SVG, which can be animated. Select components with g[data-latex='x'], shortened to mj['x'].
Contributing
Development install
You will need Node.js and JupyterLab installed.
# Clone the repo
git clone https://github.com/AlyanAamirAhmedani/sliveshow
cd sliveshow
# Install in development mode
pip install -e "."
# Link with JupyterLab
jupyter labextension develop . --overwrite
# Build TypeScript
jlpm build
Watch mode (auto-rebuild on save):
# Terminal 1
jlpm watch
# Terminal 2
jupyter lab
Development uninstall
pip uninstall sliveshow
Remove the symlink created by jupyter labextension develop:
jupyter labextension list # find labextensions folder
# remove the sliveshow symlink from that folder
Packaging
See RELEASE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sliveshow-0.1.7.tar.gz.
File metadata
- Download URL: sliveshow-0.1.7.tar.gz
- Upload date:
- Size: 867.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76c14eb73b4c4a9308d3b36b0745692d9e3121b37f0d1537c8f7c1ba9ff9e304
|
|
| MD5 |
03f8085f332beb3b7d4baa3cb7a5e113
|
|
| BLAKE2b-256 |
0dc687bac7689e9eca0251d379b79fa6d00117c47257422392390cd65b879b04
|
File details
Details for the file sliveshow-0.1.7-py3-none-any.whl.
File metadata
- Download URL: sliveshow-0.1.7-py3-none-any.whl
- Upload date:
- Size: 1.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
827be857042e544ce418621acac4199f8b294cfb6b623996ac25c5cea0f4595d
|
|
| MD5 |
a89e11e988853b9a6f57a4687949bd31
|
|
| BLAKE2b-256 |
b2043aca4cdd4d33f0291f66fe3d0696bc1ffae115cfa781651ed101c0aa2422
|