thermograph/static
Emi Griffith 595a3b13d8 Give climate/city/record pages full header parity + working °F/°C (#124)
The server-rendered SEO pages shared base.html.j2's nav but carried no JS, so
they lacked the °F/°C toggle and account/bell, and their temperatures were baked
as dual-unit strings that couldn't respond to a toggle.

- Load units.js + account.js + climate.js on base.html.j2, so every SEO page gets
  the same header as the interactive pages (nav + °F/°C toggle + account + bell).
- Emit each temperature as <span class="temp" data-temp-f> (default °F text, real
  for crawlers/no-JS); climate.js rewrites them to the active unit on load and on
  toggle. Tint classes stay pinned to absolute °F. Drops the inline "(NN°C)".
- Make account.js base-aware: derive the app base from import.meta.url so its
  api/v2 fetches and the alerts links resolve from deep /climate/{slug} URLs
  instead of 404ing. Equivalent on the depth-1 interactive pages.
- Default the unit from the browser locale for first-time visitors (no stored
  pref): en-US → °F, everyone else → °C. A stored choice always wins.
2026-07-16 17:48:30 +00:00
..
account.js Give climate/city/record pages full header parity + working °F/°C (#124) 2026-07-16 17:48:30 +00:00
app.js Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
cache.js Warm neighbor cells server-side (/cell?neighbors=1) (#51) 2026-07-11 20:47:31 +00:00
calendar.html Polish the mobile nav dropdown; rename Day to Day Detail (#121) 2026-07-16 12:34:04 +00:00
calendar.js Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
chart.js Extract the chart library and the chunked streaming fetch (#49) 2026-07-11 20:33:06 +00:00
climate.js Give climate/city/record pages full header parity + working °F/°C (#124) 2026-07-16 17:48:30 +00:00
compare.html Polish the mobile nav dropdown; rename Day to Day Detail (#121) 2026-07-16 12:34:04 +00:00
compare.js Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
day.html Polish the mobile nav dropdown; rename Day to Day Detail (#121) 2026-07-16 12:34:04 +00:00
day.js Account system with weather-notification subscriptions (#89) 2026-07-15 18:46:46 +00:00
filtersheet.js Compare basis inline; synced inline + sheet metric selector (both pages) (#82) 2026-07-12 07:45:12 +00:00
index.html Polish the mobile nav dropdown; rename Day to Day Detail (#121) 2026-07-16 12:34:04 +00:00
legend.html Polish the mobile nav dropdown; rename Day to Day Detail (#121) 2026-07-16 12:34:04 +00:00
logo-192.png Add PWA + Web Push delivery for weather alerts (#95) 2026-07-15 23:21:06 +00:00
logo-maskable-512.png Add PWA + Web Push delivery for weather alerts (#95) 2026-07-15 23:21:06 +00:00
logo.png Link previews: Open Graph tags + logo for shared URLs (#35) 2026-07-11 15:59:14 +00:00
logo.svg Link previews: Open Graph tags + logo for shared URLs (#35) 2026-07-11 15:59:14 +00:00
manifest.webmanifest Add PWA + Web Push delivery for weather alerts (#95) 2026-07-15 23:21:06 +00:00
mappicker.js Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
nav.js Add PWA + Web Push delivery for weather alerts (#95) 2026-07-15 23:21:06 +00:00
package.json Convert the frontend to ES modules; split nav.js by concern (#48) 2026-07-11 20:28:33 +00:00
push-client.js Add PWA + Web Push delivery for weather alerts (#95) 2026-07-15 23:21:06 +00:00
shared.js Distribution bars: split the in-bar range into Max/Min rows (#84) 2026-07-12 18:32:38 +00:00
style.css Compact account chip in mobile nav dropdown (#123) 2026-07-16 15:45:43 +00:00
subscriptions.html Polish the mobile nav dropdown; rename Day to Day Detail (#121) 2026-07-16 12:34:04 +00:00
subscriptions.js Add PWA + Web Push delivery for weather alerts (#95) 2026-07-15 23:21:06 +00:00
sw.js Add PWA + Web Push delivery for weather alerts (#95) 2026-07-15 23:21:06 +00:00
units.js Give climate/city/record pages full header parity + working °F/°C (#124) 2026-07-16 17:48:30 +00:00