Skip to main content

A JupyterLab extension for converting notebooks into HTML slide presentations

Project description

JupyPress

JupyPress is a JupyterLab extension for turning notebooks into HTML slide presentations.

It supports two output paths:

  • JupyterLab-backed preview and present modes for live notebook outputs, widgets, and live code execution.
  • Standalone HTML export for static, shareable presentations that do not require a running kernel.

Requirements

  • Python 3.10 or newer
  • JupyterLab 4.x
  • A modern Chromium, Firefox, or Safari browser

Installation

pip install jupypress
jupyter lab

Open a notebook, then use the JupyPress toolbar button or the command palette command JupyPress: Open Editor.

Basic Usage

  1. Create slides in the JupyPress editor.
  2. Choose a slide layout.
  3. Assign notebook cells to slide slots.
  4. Use preview for JupyterLab-backed rendering.
  5. Use present mode for a browser presentation backed by the active notebook session.
  6. Export to HTML for a static file that can be opened without JupyterLab.

Features

  • Slide metadata stored directly in the notebook.
  • Built-in layouts for title, content, two-column, and multi-row slides.
  • JupyterLab-backed preview and present modes using notebook output areas.
  • Static HTML export with embedded presentation CSS and navigation.
  • Theme support through CSS variables.
  • Markdown, code, rich outputs, images, Plotly, Leaflet/Folium, and saved widget output support.
  • Live code execution in JupyterLab-backed presentation mode.

Output Modes

Preview and Present

Preview and present modes run inside the JupyterLab environment and render assigned cells with JupyterLab output areas. This is the right mode for live notebook work, active kernels, widgets, and outputs that need JupyterLab renderers.

HTML Export

HTML export creates a standalone static presentation. The exported file is designed for sharing and viewing without JupyterLab. Dynamic widget kernels are not available in this mode, but saved/static DOM output is included where possible.

Screenshots

Release screenshots are stored under docs/images/:

  • docs/images/editor.png
  • docs/images/export-html.png
  • docs/images/launch.png
  • docs/images/present-livecode.png

See docs/images/README.md for the intended use of each capture.

Development

git clone https://github.com/andibuwono/jupypress.git
cd jupypress
jlpm install
jlpm run build:labextension
python -m build
pip install --force-reinstall ./dist/jupypress-0.1.0-py3-none-any.whl
jupyter lab

Use jlpm rather than npm; JupyterLab manages the Yarn environment.

See:

  • docs/DEVELOPMENT.md for local setup and development workflow.
  • docs/BACKEND_STRUCTURE.md for the Python backend map.
  • docs/FRONTEND_STRUCTURE.md for the TypeScript/React frontend map.
  • docs/TEST.md for test commands.
  • docs/theming.md for theme variables.

Testing

hatch run test
jlpm run test
jlpm run build:labextension

Release

See docs/RELEASE.md for the PyPI and GitHub release checklist.

Contributing

Contributions are welcome. See CONTRIBUTING.md and CODE_OF_CONDUCT.md.

License

JupyPress is distributed under the BSD 3-Clause License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jupypress-0.1.0.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupypress-0.1.0-py3-none-any.whl (120.9 kB view details)

Uploaded Python 3

File details

Details for the file jupypress-0.1.0.tar.gz.

File metadata

  • Download URL: jupypress-0.1.0.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jupypress-0.1.0.tar.gz
Algorithm Hash digest
SHA256 95a6fda3e2ac1ca1d431f70fbd6ee553667ad66c86d74651204d94b7bcf7eda9
MD5 f67e8173052fa663b7a35ec5a90f7bd1
BLAKE2b-256 a14ec57f6701ecac66778833753775e4fd40a240b1aaabe4dd5e279a999c396c

See more details on using hashes here.

Provenance

The following attestation bundles were made for jupypress-0.1.0.tar.gz:

Publisher: ci.yml on andibuwono/jupypress

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file jupypress-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: jupypress-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 120.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for jupypress-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b17a8ca31e40e8e3d3037d73c1494ae5e75a8f278cee92716bc4c84fcd2968e9
MD5 1511ab1cc8cfb813d7efd271b89e60b7
BLAKE2b-256 a93bec4cb2dd478a183c5166ce69af3522e10350a19351ed3160caf32087f85c

See more details on using hashes here.

Provenance

The following attestation bundles were made for jupypress-0.1.0-py3-none-any.whl:

Publisher: ci.yml on andibuwono/jupypress

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page