Skip to content

Repository files navigation

RISE Lite

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.

Who it is for

  • 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

RISE Lite compared with common alternatives

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.

Features

  • monitor button in the notebook toolbar
  • cell-toolbar controls for authoring slide metadata without opening the raw metadata editor
  • RISE slide, subslide, fragment, skip, and notes metadata
  • 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+Enter or Ctrl+Enter to 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

Prerequisites

  • Python 3.9 or newer
  • Node.js 20 or newer
  • JupyterLab 4.4
  • JupyterLite 0.6

Development build

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-builder

On Windows PowerShell, activate the environment with:

.\.venv\Scripts\Activate.ps1

Install JavaScript dependencies and build the extension:

npm ci
npm run build

Install 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.

Add RISE Lite to a JupyterLite project

Local source checkout

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 dist

Git dependency

The 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.

Notebook metadata

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.

Cell toolbar authoring

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.

Direct presentation links

The extension recognizes these query parameters:

  • presentation=1 or rise=1: start presentation mode automatically
  • slide=H.V or slide=H.V.F: open a horizontal slide, vertical slide, and optional fragment
  • fullscreen=1: request fullscreen mode; browsers may require a user gesture

Example:

/lab/index.html?path=MyNotebook.ipynb&presentation=1&slide=2.1&fullscreen=1

Controls

  • Esc: close presentation mode
  • F: toggle fullscreen
  • P: open the print/PDF dialog
  • Ctrl+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

License

MIT

Related projects

Contributing

Compatibility reports, example notebooks, documentation, and focused fixes are welcome. See CONTRIBUTING.md for the build and verification checklist.

About

JupyterLab 4 extension for interactive Reveal.js notebook presentations in JupyterLite without a server.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages