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.0.tar.gz (10.4 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.0-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for jupdeck-0.1.0.tar.gz
Algorithm Hash digest
SHA256 eda24a12af4e6c65c9ac33710049324d4b4dba46eae79684bf155b55a7553901
MD5 0746697fb3f2278aa470124e269a3f5f
BLAKE2b-256 b4bd0c0479f8ca81dafee4629225a53aa24d95508d1bb980815812684daf93a5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jupdeck-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 31d0e261adce6b157be3e63aba71cdfd527e0b4cebc90099e7d022605e319ecd
MD5 5c1c1db079cb0a44ff855f6a12b2a5e7
BLAKE2b-256 f745c393045484915277bb97fbfaa3fb61aaf8f891795ebda44bffea75d4792a

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