PPTX generation, QA verification, and template editing toolkit
Project description
illuma-presentx
PPTX generation, QA verification, and template editing toolkit for LLM-powered presentation workflows.
Installation
# Core (XML tools, thumbnail generation)
pip install git+https://github.com/illuma-ai/illuma-presentx.git
# With text extraction support
pip install "illuma-presentx[text] @ git+https://github.com/illuma-ai/illuma-presentx.git"
# With layout analysis support
pip install "illuma-presentx[layout] @ git+https://github.com/illuma-ai/illuma-presentx.git"
# All optional dependencies
pip install "illuma-presentx[all] @ git+https://github.com/illuma-ai/illuma-presentx.git"
Quick Start
CLI Usage
# Run the PPTX workflow runner
presentx --help
# Generate thumbnails from a presentation
python -m presentx.thumbnail input.pptx
# Unpack a PPTX for editing
python -m presentx.office.unpack input.pptx unpacked/
# Repack after editing
python -m presentx.office.pack unpacked/ output.pptx --original input.pptx
PPTXWorkflow Usage
from presentx import PPTXWorkflow
workflow = PPTXWorkflow(work_dir="/mnt/data")
# Unpack a template
workflow.unpack("template.pptx", "unpacked/")
# Generate thumbnails for analysis
workflow.thumbnail("template.pptx")
# Clean orphaned files after editing
workflow.clean("unpacked/")
# Repack into final output
workflow.pack("unpacked/", "output.pptx", original="template.pptx")
Architecture
src/presentx/
__init__.py # PPTXWorkflow, public API
pptx_runner.py # CLI entry point
thumbnail.py # Slide thumbnail grid generation
add_slide.py # Duplicate/create slides from layouts
clean.py # Remove orphaned slides, media, rels
office/
unpack.py # Extract and pretty-print PPTX XML
pack.py # Validate, repair, and repack PPTX
soffice.py # LibreOffice wrapper for PDF conversion
schemas/ # OOXML XSD schemas for validation
js/
merge_decks.cjs # Multi-part deck merger (Node.js)
docs/
SKILL.md # Main skill guide (creation, QA, design)
pptxgenjs.md # PptxGenJS API reference and patterns
editing.md # Template editing workflow
Available Tools
| Tool | Purpose |
|---|---|
thumbnail.py |
Generate visual grid of slide thumbnails |
unpack.py |
Extract PPTX to directory with pretty-printed XML |
pack.py |
Repack directory into validated PPTX |
add_slide.py |
Duplicate a slide or create from a layout |
clean.py |
Remove orphaned slides, media, and relationships |
soffice.py |
Convert PPTX to PDF via LibreOffice |
merge_decks.cjs |
Merge multi-part PPTX files (Node.js) |
Workflows
Create from Scratch (PptxGenJS)
Use when no template is available. See docs/pptxgenjs.md for the full PptxGenJS API reference including shapes, charts, icons, and common pitfalls.
Edit from Template
Use when modifying an existing presentation. See docs/editing.md for the unpack/edit/pack workflow, XML editing patterns, and formatting rules.
QA Verification
Every generated presentation should go through content QA (markitdown text check) and visual QA (slide-to-image conversion + inspection). See docs/SKILL.md for the full QA protocol.
Dependencies
Core: defusedxml, lxml, Pillow
Optional:
markitdown[pptx]-- text extraction from PPTX filespython-pptx-- layout analysis and programmatic slide manipulation
External (not pip-managed):
- Node.js +
pptxgenjs-- creating presentations from scratch - LibreOffice (
soffice) -- PDF conversion for visual QA - Poppler (
pdftoppm) -- PDF to image conversion
License
MIT
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 illuma_presentx-0.1.0.tar.gz.
File metadata
- Download URL: illuma_presentx-0.1.0.tar.gz
- Upload date:
- Size: 164.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06a305192aeb1078ca30a541394aed05cfc4f589b2c822e2a98a7aea36ad639d
|
|
| MD5 |
745c74f0c13353f4201b047ff2494d7e
|
|
| BLAKE2b-256 |
f2866546063aa0e688ef52814e11629dd6f297e503f32607413462820aa883b7
|
File details
Details for the file illuma_presentx-0.1.0-py3-none-any.whl.
File metadata
- Download URL: illuma_presentx-0.1.0-py3-none-any.whl
- Upload date:
- Size: 196.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80c585f4a08bd06270e71bd249b91bcc556c2e0f02f141bef808a6e2d6864d31
|
|
| MD5 |
fd51d4e7c1d46d7b35abd5716a8618d7
|
|
| BLAKE2b-256 |
d6fe381f2334fdd254e95b3ac520ac5fa3d6ec15ada8edb95d5813bd56b57c9a
|