{% if uploaded %}⬆ pickup {% endif %}{% if board %}{{ board|length }} link{{ '' if board|length == 1 else 's' }}{% if items %} · {{ items|length }} file{{ '' if items|length == 1 else 's' }}{% endif %}{% else %}{{ items|length }} item{{ '' if items|length == 1 else 's' }} · expires in {{ expires_in|dur }}{% endif %}
{% if items %}⬇ zip{% endif %}
{# A durable multi-writer board gets no one-click wipe — same rule as the
kept lane on the index. Remove rows with the per-row ×, or release the
board from the index and wipe it from there. #}
{% if not board %}
{% endif %}
{% if uploaded %}
📦 Pickup {{ name }}
— download files below, or on nh3-dev grab ~/booth-data/{{ name }}/
{% endif %}
{% if board %}
{# THE STANDING LINK BOARD. Every agent session on the fleet appends here, so
this is the one booth where the useful granularity is the ROW, not the
folder. Rendered as real UI rather than a markdown blob so a dead link can
be removed without hand-editing the file — and so provenance (who posted
it, when) is readable at a glance, which is the whole reason a bare URL
three days old is useless.
Removal posts a CONTENT ID, never a row number: another session can append
between this page rendering and the × being clicked, and an index would
then delete a neighbour. #}
{{ board|length }} link{{ '' if board|length == 1 else 's' }}newest last · appended by any session · × removes one row
{% if e.who %}{{ e.who }}{% endif %}
{% if e.when %}{{ e.when }}{% endif %}
{% endfor %}
{% endif %}
{% if not items and not board %}
This booth is empty.
{% elif items %}
{# `elif items` and not a bare `else`: a board booth has NO gallery items (its
links.md is rendered as the board above and filtered out), so a plain else
would emit an empty
under the board. #}
{% for it in items %}
{% if it.doc and it.rendered is not none %}
{# Docs render INLINE, collapsible, and closable — not a link to a
separate page. is native collapse (works with JS off);
the ✕ hides the item for the session (JS, progressive enhancement).
The item spans the full grid width so prose has room to read. #}
▸{{ it.name }}⤢⬇
{% if it.rendered_html %}
{{ it.rendered|safe }}
{% else %}
{{ it.rendered }}
{% endif %}
{% else %}
{% if it.kind == 'image' %}
{% elif it.kind == 'video' %}
{# preload="none": a booth of a dozen webms was fetching them
all at page load ("metadata" still pulls real ranges per
file); nothing loads until the viewer hits play #}
{% elif it.kind == 'audio' %}
{% elif it.doc %}
{# a doc too large to inline (over DOC_MAX_BYTES) still links out #}
📄 {{ it.name }}
{% else %}
⬇ {{ it.name }}
{% endif %}
{% if it.kind == 'other' %}
{% if it.caption %}{{ it.caption }}{% endif %}
{% else %}
⬇{{ it.caption or it.name }}
{% endif %}
{% endif %}
{% endfor %}