RISE Lite is a native JupyterLab 4 frontend extension that turns notebooks into Reveal.js presentations in JupyterLite. It reads the familiar RISE slideshow metadata but does not require RISE, a server-side kernel, or nbconvert.
Use RISE-style notebook slides entirely in the browser: author slide metadata, present executable notebooks, share direct slide links, and print presentations to PDF from a static JupyterLite deployment.
- educators publishing interactive course material with GitHub Pages
- researchers presenting reproducible notebooks without a Jupyter server
- existing RISE users who want a JupyterLab 4 and JupyterLite workflow
- projects that need shareable, static, browser-based notebook presentations
| Tool | Best suited to |
|---|---|
| RISE Lite | RISE-compatible, interactive presentations inside JupyterLite and JupyterLab 4 |
| Classic RISE | Notebook slides in the classic, server-backed Jupyter Notebook environment |
nbconvert slides |
Exporting a notebook to a separate Reveal.js presentation |
| JupyterLab presentation extensions | Server-backed JupyterLab workflows with extension-specific metadata |
RISE Lite is a good fit when notebooks must remain executable in a static browser deployment and existing slideshow.slide_type metadata should keep working.
- monitor button in the notebook toolbar
- cell-toolbar controls for authoring slide metadata without opening the raw metadata editor
- RISE
slide,subslide,fragment,skip, andnotesmetadata - presentation start at the active notebook cell
- Markdown, equations, images, SVG attachments, audio, video, rich outputs, and widgets
- inline Markdown and code editing by double-clicking a presented cell
Shift+EnterorCtrl+Enterto execute the selected cell and refresh its slide- fullscreen mode and adjustable presentation font size with
Ctrl+mouse wheel - optional heading numbering and two-column cells
- light and dark presentation themes
- landscape printing/PDF with slide colors and Reveal fragments
- direct presentation links through URL parameters
- Python 3.9 or newer
- Node.js 20 or newer
- JupyterLab 4.4
- JupyterLite 0.6
Create and activate a virtual environment, then install the Python build tools:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install "jupyterlab>=4.4,<4.5" hatchling hatch-jupyter-builderOn Windows PowerShell, activate the environment with:
.\.venv\Scripts\Activate.ps1Install JavaScript dependencies and build the extension:
npm ci
npm run buildInstall the built Python package into the environment:
python -m pip install .For iterative development, rebuild with npm run build, reinstall the package, and rebuild the JupyterLite site.
Place this repository in the JupyterLite project, for example under extensions/rise-lite, and add this line to the project's requirements.txt:
./extensions/rise-lite
Then install the project requirements and build JupyterLite:
python -m pip install -r requirements.txt
jupyter lite build --contents content --output-dir distThe extension can also be installed directly from this repository:
tapekuna-rise-lite @ git+https://github.com/thomasliebig/RISE-lite.git
Add that line to the JupyterLite project's requirements.txt, install the requirements, and run the normal JupyterLite build. JupyterLite discovers the packaged federated lab extension automatically.
Use the standard cell metadata key slideshow.slide_type with one of:
{
"slideshow": {
"slide_type": "slide"
}
}Supported values are slide, subslide, fragment, skip, and notes.
When a notebook cell is active, RISE Lite adds a compact authoring group to JupyterLab's existing cell toolbar. Changes are written immediately to the cell model and saved with the notebook.
- Slide type: Continue, Slide, Subslide, Fragment, Notes, or Skip
- Layout: one column or a two-column item
- Input: hide a code cell's input in presentation mode
- Output: hide a code cell's output in presentation mode
Two consecutive cells marked as 2 columns are rendered as a two-column pair. Selecting 1 column removes the RISE Lite column marker.
The controls use these metadata keys:
{
"slideshow": { "slide_type": "subslide" },
"rise": { "column": "two" },
"hide_input": true,
"hide_output": true
}RISE-compatible notebook metadata such as CSS files is also read. If a CSS file with the same base name as the notebook exists beside it, RISE Lite loads and scopes that stylesheet to the presentation.
The extension recognizes these query parameters:
presentation=1orrise=1: start presentation mode automaticallyslide=H.Vorslide=H.V.F: open a horizontal slide, vertical slide, and optional fragmentfullscreen=1: request fullscreen mode; browsers may require a user gesture
Example:
/lab/index.html?path=MyNotebook.ipynb&presentation=1&slide=2.1&fullscreen=1
Esc: close presentation modeF: toggle fullscreenP: open the print/PDF dialogCtrl+mouse wheel: change presentation font size- double-click a cell: edit its Markdown or code
Shift+Enter/Ctrl+Enter: save, execute when applicable, and refresh the slide
MIT
- Public interactive lecture notes — real teaching notebooks deployed with JupyterLite
- Jupyter RISE environment — Docker/Vagrant environment for the classic RISE workflow
Compatibility reports, example notebooks, documentation, and focused fixes are welcome. See CONTRIBUTING.md for the build and verification checklist.