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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eda24a12af4e6c65c9ac33710049324d4b4dba46eae79684bf155b55a7553901
|
|
| MD5 |
0746697fb3f2278aa470124e269a3f5f
|
|
| BLAKE2b-256 |
b4bd0c0479f8ca81dafee4629225a53aa24d95508d1bb980815812684daf93a5
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31d0e261adce6b157be3e63aba71cdfd527e0b4cebc90099e7d022605e319ecd
|
|
| MD5 |
5c1c1db079cb0a44ff855f6a12b2a5e7
|
|
| BLAKE2b-256 |
f745c393045484915277bb97fbfaa3fb61aaf8f891795ebda44bffea75d4792a
|