paged.slide — presentations
The presentation plugin — PowerPoint decks opened as native pages with their masters, charts, tables and notes, reworked with layout tools and exported back to .pptx.
In short paged.slide makes presentations a document type. A PowerPoint
.pptx opens as native pages: one slide per page, layouts as master spreads,
shapes, charts, tables and SmartArt as editable native content, and speaker notes
kept with each slide. PowerPoint itself is the reference: geometry, baselines,
chart bars and table styles are checked against what it draws. The editor loads
it; its npm package is not published yet, and parts of it are still in
development.
What it does
- Reads
.pptx,.ppsxand.potx: masters, layouts, themes, every preset and custom shape, text, pictures, charts, tables (including PowerPoint's built-in table styles) and SmartArt drawings. - Resolves PowerPoint's inheritance (theme, master, layout, slide) and writes the deck as a native document, a page per slide.
- A slide sorter (reorder, duplicate, delete, hide) and a speaker-notes panel; a new slide from a layout. Slides, layouts and placeholders are objects that scripts and panels read and write (notes, the hidden flag, the transition).
- Fonts the deck embeds are used when their licence allows installing or editing them; restricted and preview-only faces are named, not used.
- Export back to
.pptxfrom the original deck: the page order, duplicated and deleted slides, hidden flags, speaker notes and sections, checked by PowerPoint opening the written deck without a repair prompt. An unedited document exports the original bytes. - In development: writing edited slide content into the exported deck, and a slideshow with a presenter view.
How it's built
A Cargo workspace (pptx-core, pptx-import, slide-resolve, slide-geom,
slide-chart, slide-idml, pptx-export) over the shared OOXML package layer,
plus a TS bundle (@paged-media/slide). Scripts drive PowerPoint to record the
answers the tests compare against.
Capability state
● shipped & verified · ○ shipped, re-test pending · ◍ shipped, untested · ◐ partial · ✗ failing · · planned
Plugin · slide 15 features · 100% green
| Feature | Slide |
|---|---|
PowerPoint charts drawn as native shapes from their cached valuesplugin-slide.charts | ◐ |
A deck's embedded fonts reach the document, within their licencesplugin-slide.embedded-fonts | ◐ |
A PPTX opens as native slides (generated IDML, inheritance resolved)plugin-slide.import-native | ◐ |
New slide from layout; layout editingplugin-slide.layouts | ◐ |
Object model — slides, layouts and placeholders addressable through host.objectsplugin-slide.object-model | ● |
Engine and host features for slides — page order, page metadata, masters, page images, go to pageplugin-slide.page-doors | ◐ |
PowerPoint as the oracle — authored fixtures and recorded answersplugin-slide.powerpoint-oracle | ● |
Export a .pptx (original bytes if unedited, else regenerated)plugin-slide.pptx-export | ◐ |
Read a .pptx into the slide IRplugin-slide.pptx-read | ● |
DrawingML preset geometries become native pathsplugin-slide.preset-geometry | ● |
Slide sorter — thumbnails, reorder, duplicate, delete, hideplugin-slide.slide-sorter | ◐ |
Slideshow with transitions and builds, presenter viewplugin-slide.slideshow | · |
SmartArt drawn as native shapes from PowerPoint's laid-out drawingplugin-slide.smartart | ◐ |
Speaker notes per slideplugin-slide.speaker-notes | ◐ |
PowerPoint table styles resolved as PowerPoint draws them, kept as native table stylesplugin-slide.table-styles | ◐ |
Recent activity
- 2026-10-18README: moved to paged-media/paged (modules/slide) [skip ci]1a78e31
- 2026-10-17Merge pull request #4 from paged-media/fix/zip-90ff0583
- 2026-10-17deny: ignore the zip extract() advisories for ooxmlsdk's zip 8 onlye8c8aea
- 2026-10-17zip 9: upgrade the IDML writer and re-vendor paged-ooxml089a57f
- 2026-10-16Merge pull request #3 from paged-media/fix/embedded-fonts-after-open5d57849
- 2026-10-15slide-bundle: give a deck's embedded faces after its document opensd5f26cb
- 2026-10-15test: a deck's embedded faces are given once its document is open6a62ae1
- 2026-10-14Merge pull request #2 from paged-media/feat/mtx-embedded-fonts3fdfd0f
paged.doc — Word documents
The Word plugin — .docx read into native frames and styles, placed into a layout or opened on its own, with byte-level save-back that keeps everything paged did not change.
paged.publish — IDML and PDF
The format plugins — IDML import and export that round-trips InDesign packages byte for byte where nothing changed, and PDF opened as an editable native document.