fast-pptx v1.0.7
This release adds an automatic PPTX fix-and-merge workflow, replaces the pageres-cli screenshot dependency with a self-contained Playwright helper, reorganizes the repository layout, consolidates sample output slides, and improves templates, documentation, and shell script portability.
Highlights
Website Screenshots Now Use Playwright
- Removed
pageres-clidependency - Added
scripts/capture-site.mjs, a small Node.js helper that launches Chromium via Playwright, opens each URL at a fixed 1280×800 viewport, and saves a viewport-only PNG - Screenshot behavior is now explicit and easy to debug rather than hidden behind a third-party CLI
npm install --prefix scriptsandnpx --prefix scripts playwright install chromiumreplace the oldnpm install -g pageres-clistep
Single Chromium Install for Both Screenshots and Diagrams
mermaid-cliuses Puppeteer internally to render diagrams but previously required a separate Chrome install- Added
scripts/chromium-path.mjsto resolve the Playwright Chromium path at runtime fast-pptx.shnow setsPUPPETEER_EXECUTABLE_PATHautomatically somermaid-clireuses the Playwright Chromium binary- One
npx --prefix scripts playwright install chromiumcommand is all that is needed
Repository Reorganization
- Moved
fast-pptx.shto the project root so it can be run directly as./fast-pptx.sh - Moved
sample_input/andtest.shto the project root - Helper scripts (
source.sh,capture-site.mjs,chromium-path.mjs,merge_pptx.py,package.json) remain inscripts/ - Theme files (
theme.pptx,theme_code_blocks.pptx) remain inscripts/includes/ - Updated all internal paths in
fast-pptx.shto reflect the new layout - Updated
.gitignoreto excludescripts/node_modules/,scripts/package-lock.json,__pycache__/, and*.pyc
Consolidated Sample Output Slides
- Sample output slides are now exported from
slides_merged.pptxinto a singleincludes/slides/folder - Removed the separate
includes/slides_code_blocks/folder README_sample_output.mdnow lists all slides in one section
Automatic PPTX Repair and Merge
- Added
scripts/merge_pptx.pyto repair generated.pptxpackages and merge the regular and code decks while preserving source formatting fast-pptx.shnow generatesslides_merged.pptxautomatically- If no code slides are generated,
slides_merged.pptxis created as a repaired copy ofslides.pptx - Fixed merged-deck issues that triggered PowerPoint repair warnings by aligning slide master and slide layout identifier handling with PowerPoint's expectations
Template and Table Improvements
- Updated the regular-slide PowerPoint template so table slides use a wider content area
- Added a custom regular-slide table style with a more modern non-blue header and alternating row colors
- Reduced regular table-adjacent default text sizing in the template so generated tables fit more cleanly
- Kept the code-slide template separate so code formatting can still be tuned independently
Documentation and Dependency Updates
- Updated README install section to reflect the new repo layout and Playwright-based screenshot workflow
- Rewrote the README opening examples to make it clear that
sites.txtURLs are captured as screenshots - Added an early README explanation of the intended workflow: start with figures, tables, screenshots, and code snippets, then edit the generated deck in PowerPoint
- Removed the old manual-merge guidance from the README in favor of the automatic merge workflow
Shell Script Portability Fixes
- Added explicit runtime checks for the merge helper and Node.js
- Added portable hash-command detection so the script can use either
md5sumormd5 - Added ImageMagick command detection so the script can use either
magickorconvert
Requirements
- pandoc
- Graphviz
- poppler
- ImageMagick
- Node.js with Playwright (
npm install --prefix scripts && npx --prefix scripts playwright install chromium) - Python 3
csv2md,mermaid-cli, andsvgexport
Documentation
See the project README.md for installation, supported input types, output structure, and the updated workflow.