Skip to main content

Create Audience-Ready Presentations from Jupyter Notebooks

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

📘 JupDeck

Convert Jupyter notebooks to Presentation-Ready Slide Decks.

Ideal for:

  • Technical consultants
  • Data scientists
  • Instructors
  • Teams presenting notebook work to non-technical stakeholders

What It Does

This tool transforms .ipynb notebooks into structured .pptx presentations.

  • Markdown Headers become slide titles
  • Markdown Bullets become slide bullets.
  • Plots and Tables become slide graphics.
  • Markdown Text becomes speaker notes.

Quick Start

Pip install the package: pip install jupdeck

Convert a notebook to slides:

jupdeck convert examples/data/jupdeck_overview.ipyng outputs/output.pptx


JupDeck Roadmap

This roadmap outlines the phased development plan for the JupDeck tool. The goal is to build a system that transforms Jupyter Notebooks into professional PowerPoint presentations, supporting data science reporting, executive summaries, and technical documentation.

1: Baseline Slide Generator

Goal: Prove core functionality: parse notebooks and render working PowerPoint output with embedded graphics.

Features:

  • Parse notebook markdown structure and code cell outputs
  • Generate PowerPoint slide decks (.pptx)
  • Embed output graphics (e.g., plots, images, tables) into slides with generic/simple formatting
  • PyPI and GitHub releases with versioning

Notes: "User in the loop" for clean up of formated slides necessary


2: Notebook Slide Directives

Goal: Interpret slide layout directives from Jupyter notebooks

Features:

  • [] Rudimentary directives can be embedded as html-comments in markdown cells
  • [] Directives control simple formatting, e.g. "New Slide", "Hide Tables"

3: Improved Layouts

Goal: Automatically Adapt Slide Layouts

Features:

  • [] 3 different content slide layouts offered plus intro / ending layouts
  • [] Layout rules encoded in reusable config file
  • [] During slide rendering, best layout for slide chosen based on contents
  • [] Format validation during rendering (e.g. image resolution, text overflow)

4: Custom Theming and Templates

Goal: Use Custom Styling Templates and Themes

Features:

  • [] Choose between 3 custom styling templates (e.g. dark mode, corporate, academic)
  • [] Add user-defined templates

5: Custom Content Filtering

Goal: Generate different decks depending on audience

Features:

  • [] Directives mark content for different rendering scenarios (e.g. technical vs. non-technical, internal vs. external)
  • [] Command-line flag controls rendering scenario and generates appropriate deck (e.g. jupdeck input.ipynb --theme internal --no-code)
  • [] Reusable configuration profiles (YAML)

6: VS Code Plugin

Goal: Notebook rendering from VS Code

  • [] Plugin allows notebook rendering from VS Code interface
  • [] Plugin provides suggestions during notebook editing

7: Basic LLM Editing Support

Goal: Use LLMs for editing support Features:

  • [] Summarize markdown into concise, audience-appropriate bullets
  • [] Align slide tone with target audience (e.g. "executive-friendly", "technical peer review")

8: LLM Slide Enhancement

  • [] Integrate conversational interface to notebook
  • [] Auto-suggest slide titles and bullets from raw code/markdown
  • [] Validate presentation claims against content: "This model seems to be overfit", "This chart does not support the title claim"

9: Team Collaboration & Workflow Integration

Goal: Support real-world enterprise workflows

  • [] GitHub Actions to auto-render slides from notebooks on PR merge
  • [] Enable shared template libraries across teams
  • [] Add comments/annotations for reviewer workflows

💡 Why?

Jupyter notebooks are fantastic for exploratory work — but hard to present clearly. This tool turns notebook narratives into shareable reports for clients, collaborators, and classrooms.


🧪 Development & Testing

poetry run pytest         # Run test suite
poetry run pre-commit run --all-files  # Run linters and formatters

📄 License

Apache License 2.0 — permissive for personal, educational, and commercial use. (See LICENSE file)

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

jupdeck-0.1.1.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

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

jupdeck-0.1.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

Details for the file jupdeck-0.1.1.tar.gz.

File metadata

  • Download URL: jupdeck-0.1.1.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Darwin/23.6.0

File hashes

Hashes for jupdeck-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e6e3c45e47e9783998c21100813033c735b0481a0d1d45784b27323ef2084970
MD5 97f8ee1c2ba6b6faeb85f4ea27684def
BLAKE2b-256 72d068c72de5f4cf6651aa699c9891ae007a8a1ae79714ded4d425e1ca5650df

See more details on using hashes here.

File details

Details for the file jupdeck-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: jupdeck-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.13.5 Darwin/23.6.0

File hashes

Hashes for jupdeck-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fc54900485253e7b496852b884b0e738e87d556a85005051fe736988b94650d3
MD5 60e02cc1cf976a7b1448a6b2fcb15157
BLAKE2b-256 67b462134201d39367a04ecffa3467ce51f58293a4821d437e400c3a748f8182

See more details on using hashes here.

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