Version 2.1 brings a few notable features and many many bug fixes / improvements! Some of these are breaking changes if you have a lot of custom content!
Important note: the skin now has two branches, Master (stable releases) and Development (beta releases, and development versions).
Thank you as always to all the beta testers who made this possible!
Bootstrap upgrade -- no more JQuery, potentially breaking change
Big thanks to @ThomasForeman86 for a full refactor that upgrades the underlying architecture to Bootstrap v5.3.3! That also means we no longer need jQuery, so that has been removed. The new Bootstrap version allows improved menus, and also improved notifications/alerts. It also means a separate dark mode .css file is no longer necessary.
The biggest change is a transition to a Bootstrap "hamburger" menu at upper right, which handles better in mobile views in particular. responsive-menu.js has been removed! The menu is now customized from an .inc file. There is an example provided, nav-menu-custom.inc.example, that you can modify to your needs and is preserved across upgrades. The syntax should be similar.
If you have custom content that relies on jQuery, that will also have to be redone. Please seek help in the Discussions section if needed.
New feature -- live unit switching
HUGE thanks to @Millardiang, who has managed to figure out how to implement live unit switching for EVERYTHING in the chart, including forecast, charts, etc. etc. A very handy feature!
The switching is off by default. You can enable it by setting unit_switching = 1 in weewx.conf. When active, users can set the units using the "hamburger" menu at upper right. Please note this option does increase processing requirements!
New feature -- zoomable charts
Charts can now be zoomed and scrolled to isolate any sub-range.
This feature can be enabled in charts.conf for all charts, or section-by-section, or just for individual charts. It can also be disabled individually, too -- for example, you could turn on zooming by default on a page, and only disable it for certain charts.
[[chart1]]
title = Temperature
time_length = all
zoom = true
zoom_range = week
[[[outTemp]]]
zoom = 1 (or zoom = true) turns on zooming (if omitted, it is off by default). zoom_range allows you to set the default range that is displayed using number of seconds, or words like "day," "month," etc.
WARNING: chart loading can become very slow if you enable long time ranges for each chart. In the example above, even if only a week of data is available by default, all data is loaded and available to display. Use long time_length charts sparingly unless you are all right with slow loading times!
New feature -- "threshold" line in charts (thank you @ThomasForeman86 and @ziti!)
[[mainWindChart]]
[[[windGust]]]
yAxis_plotLine_value = 46
yAxis_plotLine_label = "Gale force"
yAxis_plotLine_color = "#dc322f"
This renders a dashed horizontal Highcharts plotLine on the series' yAxis with an optional right-aligned label - useful for marking fixed thresholds such as river flood levels, frost points or gale-force wind speeds. Only yAxis_plotLine_value is required; color defaults to a red dash and the label is omitted when not set.
You can add as many threshold labels as you want, and vary the styles / label alignments:
[[mainWindChart]]
[[[windGust]]]
yAxis_plotLine_value = 4
yAxis_plotLine_label = Light breeze
yAxis_plotLine_color = "#268bd2"
yAxis_plotLine_dashStyle = LongDash
yAxis_plotLine_labelAlign = left
yAxis_plotLine2_value = 24
yAxis_plotLine2_label = Fresh breeze
yAxis_plotLine2_color = "#71bc3c"
yAxis_plotLine3_value = 48
yAxis_plotLine3_label = Gale
yAxis_plotLine3_color = "#f7a35c"
yAxis_plotLine3_dashStyle = Dash
yAxis_plotLine3_zIndex = 3
yAxis_plotLine3_labelVerticalAlign = bottom
yAxis_plotLine4_value = 63
yAxis_plotLine4_label = Storm
yAxis_plotLine4_color = "#dc322f"
yAxis_plotLine4_dashStyle = Dash
yAxis_plotLine4_width = 3
New feature -- labels in charts.conf
Labels are now supported in charts.conf. This can be useful for those who like to serve two different versions of the skin in two different languages.
The syntax is ${your_label}. The brackets are to make it explicit that this is not a Cheetah tag -- the text is replaced manually by Python, since otherwise we'd have to change everything to .tmpl files.
You can define a chart group using labels like this:
[day]
title = ${chart_day_title}
button_text = ${chart_day_button}
[[chart1]]
title = ${chart_temperature_title}
[[[outTemp]]]
name = ${chart_outtemp_series}
And then run two reports, with two different translations:
[StdReport]
[[new-belchertown-en]]
skin = new-belchertown
HTML_ROOT = public_html/en
enable = true
lang = en
[[[Extras]]]
forecast_lang = en
site_title = "My Weather Website"
[[[Labels]]]
[[[[Generic]]]]
chart_day_title = "Today"
chart_day_button = "Day"
chart_temperature_title = "Temperature"
chart_outtemp_series = "Temperature"
[[new-belchertown-fr]]
skin = new-belchertown
HTML_ROOT = public_html/fr
enable = true
lang = fr
[[[Extras]]]
forecast_lang = fr
site_title = "Mon site météo"
[[[Labels]]]
[[[[Generic]]]]
chart_day_title = "Aujourd'hui"
chart_day_button = "Jour"
chart_temperature_title = "Température"
chart_outtemp_series = "Température"
Enhancements and behavior changes
- Alerts and AQI now show as "badges" instead of text. Click on any badge to get more information.
- Alerts are now color-coded. Red is currently active, grey is pending.
- The "auto" dark/light theme now follows system settings, not sunrise/sunset. You can override that by setting
theme = sun. - AQI source enhancements: users can now specify the source for AQI. By default it is
auto, which uses local sensors first and then downloaded forecast data as a fallback. Users can override tolocalorforecast. - AQI scale enhancements: users can specify which AQI scale to use.
autouses geolocation to pick the local country when possible. Users can override tous,uk,canada,european. - Wet bulb temperature can now be calculated if not measured directly, as
outWetBulb. - Records page now has more categories and detail.
Bug fixes
Far too many to document individually, mostly related to stability of forecast downloads and page refreshing in the background.