Show on-device HTML UI mocks as firmware card previews.

Prefer media/preview.html over raster covers so catalog cards mirror each LVGL screen.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-19 22:10:05 +08:00
parent 8ae9501263
commit 937c0090d5
8 changed files with 108 additions and 73 deletions

View File

@@ -47,9 +47,11 @@ CYD_FIRMWARE_ROOT=C:\Users\dsx2016\Desktop\codes\cyd
After rebuilding a project, run its `firmware\export_from_build.ps1`, then click **Refresh**.
## Extending a firmware (media / docs)
## Extending a firmware (HTML UI preview / docs)
Create `meta.json` beside the `.bin` files:
Preferred card preview: **`media/preview.html`** — HTML recreation of the on-device LVGL UI (320×240). Auto-detected if present.
Optional `meta.json` beside the `.bin` files:
```json
{
@@ -59,19 +61,18 @@ Create `meta.json` beside the `.bin` files:
"description": "Longer detail text",
"tags": ["pomodoro", "touch"],
"media": {
"cover": "media/cover.webp",
"animation": "media/preview.gif",
"preview": "media/preview.html",
"video": "media/demo.mp4",
"docs": "docs/README.md"
}
}
```
- Relative media paths are served via `/api/firmware/.../media/...` (only if the file exists).
- Media paths are served via `/api/firmware/.../media/...` (only if the file exists).
- `docs` may also be an `https://` URL.
- `boardId` values: `esp32-2432s028` (active), `esp32-2432s024`, `esp32-3248s035`, `esp32-s3-touch` (UI reserved).
Without `meta.json`, the catalog still works from `VERSION.txt`.
Without `meta.json`, the catalog still works from `VERSION.txt` + auto `media/preview.html`.
## Public deploy (Docker + Caddy)