docs: refresh what today's work made stale — booth asks (inline placement promoted to its own section), ana-ml2 nvme7 settled by the scrub result, nh3-dev booth entry + the CLI-on-PATH fix, run-07 runbook outcome + serving state
This commit is contained in:
@@ -161,37 +161,55 @@ Rules of the primitive:
|
||||
- **A broken ask is shown as broken**, not hidden: if the JSON does not
|
||||
validate, the page says why, so a session never thinks it posted a question
|
||||
the operator cannot see.
|
||||
- **A booth with its own `index.html` gets the ask INLINE, where you put it.**
|
||||
That page is served verbatim, so the Booth substitutes placeholders in your
|
||||
markup rather than rendering the panel above a gallery it does not have:
|
||||
|
||||
```html
|
||||
<div data-booth-ask="anchors"></div> <!-- the whole ask: every question + submit -->
|
||||
<div data-booth-ask="anchors:lawson"></div> <!-- just that one question's radios -->
|
||||
<div data-booth-ask-submit="anchors"></div> <!-- the notes field + submit button -->
|
||||
<!-- booth:ask anchors:lawson --> <!-- comment form, same thing -->
|
||||
```
|
||||
|
||||
Per-question fragments bind to **one** form with the HTML5 `form=` attribute,
|
||||
so a four-voice audition can put each radio group under that voice's audio and
|
||||
still submit all four picks in a single POST — which is what a multi-question
|
||||
ask requires. The fragments ship their own scoped styles and inherit nothing
|
||||
from your page. No JavaScript.
|
||||
|
||||
⚠ Put the placeholder **outside** any CSS grid or flex container, or it
|
||||
becomes a cell in it. A sibling of the block it belongs to is right.
|
||||
|
||||
Placement is optional: a page with no placeholders gets the whole ask appended
|
||||
at the end, so an ask is never invisible — markup only moves it somewhere
|
||||
better. Mark up some questions and not others and the rest are appended too,
|
||||
because a multi-question form that is missing a question is a 400 the operator
|
||||
would only meet after filling it in. The amber chip stays as a jump link to the
|
||||
first open ask, and `/b/<name>/asks` still renders every ask on its own page.
|
||||
- Ask/answer files are not gallery items and do not count toward the booth's
|
||||
item count; they render as the panel above the gallery. Answering bumps the
|
||||
booth's mtime, so it lives another TTL — the session has 24h to read it.
|
||||
- Works with JavaScript off (plain form POST). No auth, same as everything here.
|
||||
|
||||
### Where the form renders
|
||||
|
||||
Two booth shapes, two placements. Either way the ask is never invisible — that
|
||||
is the guarantee; markup only moves it somewhere better.
|
||||
|
||||
**Auto-gallery booth** (no `index.html` of its own): the asks panel renders
|
||||
above the gallery, styled like the rest of the Booth. Nothing to do.
|
||||
|
||||
**A booth serving its own `index.html`**: that page is returned verbatim, so the
|
||||
Booth substitutes **placeholders in your markup** rather than rendering a panel
|
||||
above a gallery that does not exist. The question then sits with the artifact it
|
||||
is about, which is the whole point (operator ruling 2026-09-09: *"the asks should
|
||||
be inline with the artifacts, not on a separate page"*).
|
||||
|
||||
```html
|
||||
<div data-booth-ask="anchors"></div> <!-- the whole ask: every question + submit -->
|
||||
<div data-booth-ask="anchors:lawson"></div> <!-- just that one question's radios -->
|
||||
<div data-booth-ask-submit="anchors"></div> <!-- the notes field + submit button -->
|
||||
<!-- booth:ask anchors:lawson --> <!-- comment form, identical behaviour -->
|
||||
```
|
||||
|
||||
Per-question fragments bind to **one** form via the HTML5 `form=` attribute, so a
|
||||
four-voice audition puts each radio group under that voice's audio and still
|
||||
submits every pick in a single POST — which is what a multi-question ask
|
||||
requires. Fragments ship their own scoped styles, inherit nothing from your page,
|
||||
and use no JavaScript.
|
||||
|
||||
⚠ **Put the placeholder outside any CSS grid or flex container**, or it becomes a
|
||||
cell in it — measured on `redo-anchors`, where the first attempt rendered as a
|
||||
224 px sixth grid cell wedged between two audio players. A sibling of the block
|
||||
it belongs to is right.
|
||||
|
||||
The fallbacks, so a page can never strand a question:
|
||||
|
||||
| you marked up | what happens |
|
||||
|---|---|
|
||||
| nothing | the whole ask is appended at the end of the page |
|
||||
| some questions, no submit | the rest of the questions **and** a submit block are appended |
|
||||
| a stem this booth does not have | your markup is left alone, untouched; the real ask is still appended |
|
||||
|
||||
An amber `? N open asks` chip floats top-right as a jump link to the first open
|
||||
ask, and `GET /b/<name>/asks` still renders every ask on a plain page of its own
|
||||
— useful when you want to hand someone only the question.
|
||||
|
||||
## Upload for pickup
|
||||
|
||||
The reverse direction — put files in through the web, pick them up by id:
|
||||
|
||||
Reference in New Issue
Block a user