{#- =========================================================================== Arcanum Site Kit (ASK) v1.2 — partials/header.html (Jinja2 include) For FastAPI+Jinja stacks: leontief, methodex, gerhard, lewis, volcker, leonid, freenic, shaikh. Vendoring: copy arcanum.css + arcanum-chrome.js + ecosystem.json into the site's static dir (served at /static/_shared/). Then in base.html : (2-line accent override) ...and where the header belongs (top of ): {% include "_shared/header.html" %} ...and the chrome enhancer just before (see footer.html). Expected template variables (all optional except site_title; provide via a context processor so every route has them): site_key str ecosystem.json site.key (e.g. "volcker") -> switcher "current" site_title str display name shown next to the brand (e.g. "Volcker") site_home str url/path the site title links to (default "/") hub_url str default "https://heterodata.org" nav list [{label, href, active(bool)}] blueprint vocabulary ecosystem dict parsed ecosystem.json (for the no-JS switcher) — recommended ============================================================================ -#} {%- set hub_url = hub_url | default("https://heterodata.org", true) -%} {%- set site_home = site_home | default("/", true) -%} {#- No-FOUC: apply the saved theme synchronously before paint. -#} Skip to content
{#- Brand mark -> hub (heterodata.org) -#} Heterodata An Arcanum Research project {%- if site_title %} {{ site_title }} {%- endif %} {#- Ecosystem switcher:
= works with NO JavaScript. arcanum-chrome.js only re-populates if the menu is empty. -#}
{{ site_title | default("Ecosystem", true) }} {#- v1.5 dropdown: Hub first, then live sites A-Z, then "In progress" (draft/roadmap), then "Affiliated", then Architect. ONE row per site; `hub_only` sites (Files) are skipped. Must match arcanum-chrome.js. -#}
{#- Per-site nav (blueprint vocabulary) -#} {%- if nav %} {%- endif %} {#- Light/dark toggle (follow system, then remember — wired by arcanum-chrome.js) -#}