This is intended to replace the simple regex truncation (`city.match(/[^,/;\\-]*/)[0].substr(0, 12)`)
with a file that has all the station name processing already pre-processed by the logic in the stations
post-processor script. It uses priority-based conflict resolution to avoid duplicate station names by
using airport classification hierarchy. It handles complex naming patterns including military facilities,
county airports, hyphenated cities, slash/comma separators, and "at/near" qualifiers with a minium number
of exceptions.
This changes station data pipeline to generate stations-raw.json first, then process through the
post-processor to create the final stations.json compatible with existing codebase.
- Create utils/mapclick.mjs with centralized MapClick API functionality
- Refactor modules to use the new utility:
- Current Weather
- Latest Observations
- Regional Forecast
- Add staleness checking utility for use by modules
- Move common icon parsing logic into module
- Return a "real" icon value during error handling to avoid downstream
consumers from trying to use an icon named "false"
- Use named regex to parse icon URLs based on API specification
The previous logic only checked URL parameters for kiosk mode,
but sticky kiosk can enable kiosk mode from localStorage without
URL parameters. Now checks actual kiosk setting value.
Fix typo in scan line settings name.
- This setting is important to allow creation ofa Home Screen app on iOS/iPadOS
- If kiosk mode is accidentally made sticky, it can be cleared by adding '&kiosk=false` to the URL
- Ctrl-K will now also exit kiosk mode
This adds a `stickyRead` parameter to settings, that means "read it if it's there, but don't write it"