Skip to content

Download runnable projects from the browser playground - #15

Merged
krflol merged 3 commits into
mainfrom
feat/playground-project-download
Oct 2, 2026
Merged

krflol merged 3 commits into
mainfrom
feat/playground-project-download

Conversation

@krflol

@krflol krflol commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

Playground users can now download their current HTML/CSS as one runnable Python project. The ZIP includes the four bundled fonts and their licenses, a renderer, requirements pinned to the playground's engine version, a README, and a file-hash manifest. This replaces the need to assemble three separate source/font downloads before continuing locally.

Export captures the editor at the click, including unrendered edits. It runs on the user's device using static asset GETs, preserves later edits, and keeps rendering usable after a download failure. The responsive toolbar exposes the new action on desktop and mobile. The ordinary playground notice also gets a footer that describes its output accurately; the existing tagged showcase PDF is unchanged.

Validation: four real ZIPs (invoice, report, notice, and edited invoice) extract successfully and reproduce WASI PDF and PNG bytes with the public Fullbleed 2.5.0 Python wheel on Windows and Linux (passing CI). Checks cover CRCs, exact source/font/license bytes, stable archive replay, changed-font rejection, and asset failure recovery. Browser checks cover pending edits, typing during export, failure/retry, actual ZIP-to-Python execution, no source upload, and desktop/mobile overflow. All six exported fixture pages were visually reviewed. Strict MkDocs build and the 48-page internal-link check pass. Rust comparisons replay the same prepared inputs with hash checks and retain strict PDF/PNG equality; the Rust guide explains how to use the exported project.

This changes the optional website adapter only. No core package dependency or engine release is introduced.

@krflol
krflol merged commit f14c849 into main Oct 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant