vexy-dexypy¶
vexy-dexypy turns a web page into slide decks. It takes one URL or local HTML
file, works out where the slides inside the page should break, and renders the
page to PDF through several engines in parallel. Each engine writes its own
folder of single-page PDFs. You compare the folders and build your final deck
from the best version of each slide.
![]()
No two engines paginate a page the same way. A Webflow hero often looks best
through Chromium, while a documentation page often looks best through a CSS
paged-media engine. vexy-dexypy runs the engines side by side and leaves the
choice to you.
What goes in, what comes out¶
- Input
- An
http://orhttps://URL, or a path to a local.htmlfile. - Output
- A folder per page under
out/, with one sub-folder per rendering strategy and a_meta/folder that records the slide plan and the run summary.
For vexy-dexypy build https://www.vexy.art/lines/ the result looks like this
(the folder name is a slug derived from the URL):
out/www-vexy-art-lines/
raw/ index.html # the fetched page
normalized/ normalized.html # slide-shaped sections
playwright/ 01-slide.pdf 02-slide.pdf … index.html
reveal/ 01-slide.pdf … index.html
vivliostyle/ 01-slide.pdf … index.html
_meta/ page.json slideplan.json run-summary.json
A strategy that fails becomes a warning in the summary table. The run still writes the decks that worked.
The six stages¶
- Read: fetch the page (or copy the local file).
- Analyze: recognize the page builder (Webflow, MkDocs Material, and others) and plan slide breaks at the target stage size.
- Normalize: restructure the DOM into slide-shaped
<section>elements, in the browser, with the bundledvexy-dexyjspreprocessor. - Prepare: write the paged-media CSS, reveal.js, impress.js or Marp wrapping that each engine expects.
- Render: export a combined PDF through every selected engine.
- Write: split each PDF into numbered single-page files, optionally convert them to SVG, and write an HTML preview.
Architecture follows one page through every stage.
Where to go next¶
- Installation: Python, Chromium and the optional engines.
- Quick start: your first build, step by step.
- Command line: every command and flag.
- Configuration:
vexy-dexypy.tomlkeys and precedence. - Engines: what each strategy does and what it needs.
- Extending: add readers, importers or exporters as plugins.
- Troubleshooting: common failures and fixes.
- Contributing: development setup, tests and releases.
Licence¶
See the
LICENSE file in
the repository. Some engines vexy-dexypy can call have their own licences: Vivliostyle is AGPL and Prince is proprietary.
vexy-dexypy runs them as separate programs and does not link them.