{#- The page band: what used to be a title row, a loose about paragraph and a freshness caption stacked down the page, gathered into one aligned block — breadcrumb/title on the left, the updated-line and the filters on the right, the node's about beneath. The freshness line is not chrome. It is the ADR-0005 promise that the page dates its own data, so it reads as a measurement: tabular figures so the digits do not dance on each poll, and a rule separating it from the controls it is not one of. It keeps `id="status-updated"`, its server-seeded `data-rendered-at`, and the `text-muted` class **poll.js swaps for `text-danger`** — that swap is why nothing here may set a `color` on it (both Bootstrap utilities are `!important`; a color of our own would be beaten by them and a stale line could read muted instead of red). `band_stamp` and `band_filters` say which parts this page has: the dashboard takes both, a detail page neither. They default to off — the Jinja env is StrictUndefined, so a page that wants a part has to say so. -#} {%- set band_stamp = band_stamp | default(false) -%} {%- set band_filters = band_filters | default(false) -%} {#- The kiosk has no band: its slim line already carries the sentence, the stamp and the exit, and a wall display has no use for a title or for filters it cannot be clicked. The stamp lives in that line instead, so there is still exactly one of it on the page. -#} {%- if layout != 'kiosk' %}

{% include '_breadcrumb.html' %} {%- if node and node.title %} {{ node.title | markdown_inline }} {%- endif %}

{%- if band_stamp or band_filters %}
{%- if band_stamp %}
updated {{ rendered_at }}
{%- endif %} {%- if band_filters %}
{# A form submit carries this marker, so an unchecked switch (which sends nothing) is told apart from a fresh visit — lets the switches persist and a default-on switch turn off. #} {#- Each control below carries `data-ls-submit`: prefs.js submits this form when one changes, so a switch needs no Apply. It was an `onchange` attribute on every input until a Content-Security-Policy made inline handlers the thing worth removing (ADR-0048); the
{%- endif %}
{%- if node and node.about %}
{{ node.about | markdown }}
{%- endif %}
{%- endif %}