docs(contract): r2 — fold booth-dev's items.py notes and the empty-section negative
Ordinal is appended, not inserted. The quote() guard stays, and skipped items take no ordinal. Empty Desk sections do not render; this carries forward the negative half of the kept-lane pair. The 1:1 toggle is bound only when the stage is an image.
This commit is contained in:
@@ -66,6 +66,15 @@ open_questions:
|
||||
`sorted(rel)` order over **all** items. It is assigned in the resolver loop, so
|
||||
no route derives it.
|
||||
|
||||
- `ordinal` is **appended** as the dataclass's last field, never inserted.
|
||||
Mid-dataclass insertion is a positional-construction break, and `group` has
|
||||
already had that conversation.
|
||||
- The resolver's `quote()` guard on non-UTF-8 names stays exactly as it is. It
|
||||
looks like a stray `try` around a discarded result, but it is what keeps one
|
||||
0xff filename from taking down the index for every booth.
|
||||
- An item skipped by that guard takes no ordinal, so ordinals stay contiguous
|
||||
over the items that render.
|
||||
|
||||
- **A filter never renumbers.** Under `?filter=flagged` a tile still shows the
|
||||
number it has in the whole set. That is the point: "#07" is a property of the
|
||||
item, not of the view.
|
||||
@@ -178,6 +187,12 @@ The side column holds:
|
||||
- Capped at 8, with a link to the full board.
|
||||
- **Pickup**: the existing upload form, unchanged, moved from the page head.
|
||||
|
||||
**An empty section does not render** — no heading, no box. This is the
|
||||
load-bearing negative half of the kept-lane pair it replaces
|
||||
(`'class="grid kept-grid"' not in html`), carried forward into test_flow.py as
|
||||
a pair: present when it has rows, absent when it has none. It applies to each
|
||||
of the three sections and to the Benches and Bookmarks panels.
|
||||
|
||||
The kept/ephemeral lanes are **removed**: 23 of 24 live booths are kept, so the
|
||||
lanes sort nothing. Kept status and the lifetime line (`_lifetime.html`,
|
||||
unchanged) remain on every row.
|
||||
@@ -212,7 +227,12 @@ unchanged) remain on every row.
|
||||
|
||||
This applies to image, video and audio items. Docs keep `doc.html`.
|
||||
|
||||
- **The stage**: the artifact at fit size, with a 1:1 toggle for images.
|
||||
- **The stage**: the artifact at fit size, with a 1:1 toggle for images ONLY.
|
||||
- The toggle and its script are rendered and bound only when the stage is
|
||||
an `<img>`.
|
||||
- Video and audio get their native controls and no toggle. A toggle that
|
||||
renders on audio and silently no-ops (today's script binds
|
||||
`getElementById('vimg')`) is the failure this names.
|
||||
- **The rail** (`data-region="rail"`) holds:
|
||||
- `#NN of M`, and position within the group;
|
||||
- the caption;
|
||||
|
||||
Reference in New Issue
Block a user