Build info: Images, Page, thumbnails and frames #13

Merged
jmoran merged 5 commits from feat/pin-media into main 2026-11-04 16:24:42 +00:00
Owner
  • Images and Page in Build info, and a thumbnail on every graph row.
  • Make thumbnail: the cart cover from a build's capture.
  • Use as thumbnail, on the form and the API.
  • Frames kept in a repository (FORGE_THUMB_FRAME), and Frame as thumbnail. Docs: docs/features/thumbnails.md.
- Images and Page in Build info, and a thumbnail on every graph row. - Make thumbnail: the cart cover from a build's capture. - Use as thumbnail, on the form and the API. - Frames kept in a repository (FORGE_THUMB_FRAME), and Frame as thumbnail. Docs: docs/features/thumbnails.md.
A proof of concept for pin media and demo pages, in Build info's
"Yours to change" group:

- Images: a pin's pictures (refs/shots/<label>, so in git and copied
  with a fork) as thumbnails that open full size. A writer adds a PNG,
  JPEG or WebP picture with a caption, up to 2 MB and 12 a pin, or takes
  one off, against the list it was drawn from.
- Page: the page of the pin's commit it captures and plays, such as a
  /demo route that draws built-in data. Set it, and Build and play
  captures that page; a pin with no demo gets one from the defaults.

Each graph row shows a thumbnail: the pin's first image, else its cover
or its capture's picture when one exists, never a broken one. A
Thumbnails checkbox beside Notes hides them, kept in the URL.
Build info's Images gains Make thumbnail on a captured build, for a
writer. The forge draws the cart cover the Arcade draws (arcade/cover.ts:
the capture's picture inset in the black frame, the demo's name and
number in orange, the handle and green cube from the template) in its
own browser at 512x512, and stores it as the pin's first image,
captioned Thumbnail, in place of any thumbnail made before. It lives in
refs/shots/<label>, so in git and copied with a fork, and it becomes
the graph row's thumbnail.

A capture saved without a browser has no picture; the forge then
photographs the saved page itself, which needs no running app, and
keeps that picture as the capture's too. With no browser at all it says
so (FORGE_CHROMIUM). The test that draws one skips, and says so, where
this machine has no browser.
Add an image gains Use as thumbnail: the picture becomes the pin's first
image, captioned Thumbnail, in place of the thumbnail before it, the
way Make thumbnail's does. The API's screenshot upload takes the same
thumbnail=1, so a batch script (thumbs-batch) can send its pictures in.
The forge draws thumbnails from a frame spec it shares with the
toolbox's thumbs-batch (arcade/frame.ts): a square frame.png with a
transparent window, and frame.json for the window, the name and the
version. FORGE_THUMB_FRAME=owner/repo:dir reads one from a repository's
default branch, so a frame designed in a photo editor and committed
there draws every thumbnail; without it, the Arcade's cart cover, now
as a frame like any other.

Make thumbnail frames the build's capture; each of a pin's images gains
Frame as thumbnail, which frames that picture instead (upload a
screenshot, then one click). Either becomes the first image, captioned
Thumbnail, in place of the one before. docs/features/thumbnails.md
holds the spec.
jmoran merged commit 2bf467aa0d into main 2026-11-04 16:24:42 +00:00
jmoran deleted branch feat/pin-media 2026-11-04 16:24:42 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jmoran/forge-jay!13
No description provided.