Home
Random
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Climate chart
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
-- from https://lua-users.org/wiki/SimpleRound local function round(num, decimal_places) local mult = 10^(decimal_places or 0) return math.floor(num * mult + 0.5) / mult end local function c_to_f(temp_in_c) return temp_in_c * 1.8 + 32 end -- this implements the fahrenheit subtemplate, will need to look into what the -- celsius template is doing -- unit_system currently unused accordingly local function month_column(low_temp, high_temp, precipitation, max_precipitation, unit_system) local precipitation = precipitation or 80 local base_precipitation = max_precipitation or 500 local precipitation_scale = math.max(1, base_precipitation / 750) -- 750 mm is the maximum for height local precipitation_bar_height = precipitation / 50 / precipitation_scale -- 50 is a magic constant local precipitation_in_inches = precipitation / 25.4 local decimal_places = 0 if precipitation_in_inches < 10 then decimal_places = 1 end local rounded_precipitation_inches = round(precipitation_in_inches, decimal_places) local low_temp = low_temp or 10 local high_temp = high_temp or 20 local low_temp_shift_for_bar = low_temp / 5 + 8 -- magic numbers local temp_bar_height = (high_temp - low_temp) / 5 -- magic numbers local high_temp_shift = high_temp / 5 + 8 local low_temp_shift = low_temp / 5 + 6.5 local high_temp_f = c_to_f(high_temp) local rounded_high_temp_f = round(high_temp_f, 0) local high_temp_sign = '' if rounded_high_temp_f < 0 then high_temp_sign = '−' end local abs_high_temp = math.abs(rounded_high_temp_f) local low_temp_f = c_to_f(low_temp) local rounded_low_temp_f = round(low_temp_f, 0) local low_temp_sign = '' if rounded_low_temp_f < 0 then low_temp_sign = '−' end local abs_low_temp = math.abs(rounded_low_temp_f) local column = mw.html.create('div') column:addClass('climate-chart-column') :tag('div') :addClass('climate-chart-column-spacer') :wikitext(' ') :done() :tag('div') :addClass('climate-chart-column-precip-bar') :wikitext(' ') :css('height', precipitation_bar_height .. 'em') :css('print-color-adjust', 'exact') -- css sanitizer doesn't accept yet :done() :tag('div') :addClass('climiate-chart-column-precip') :tag('span') :wikitext(rounded_precipitation_inches) :done() :done() :tag('div') :addClass('climate-chart-column-spacer2') :wikitext(' ') :done() :tag('div') :addClass('climate-chart-column-temp-bar') :wikitext(' ') :css('bottom', low_temp_shift_for_bar .. 'em' ) :css('height', temp_bar_height .. 'em') :css('print-color-adjust', 'exact') -- css sanitizer doesn't accept yet :done() :tag('div') :addClass('climate-chart-column-high-temp') :css('bottom', high_temp_shift .. 'em') :tag('span') :wikitext(high_temp_sign .. abs_high_temp) :done() :done() :tag('div') :addClass('climate-chart-column-low-temp') :css('bottom', low_temp_shift .. 'em') :tag('span') :wikitext(low_temp_sign .. abs_low_temp) :done() :done() :done() return column end
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Climate chart/doc
(
edit
)