change to full-day weather and update icons
This commit is contained in:
parent
26a2cfb91b
commit
951eb71b83
20 changed files with 430 additions and 22 deletions
75
document.typ
75
document.typ
|
|
@ -1,26 +1,63 @@
|
|||
#set page(width: 65mm, height: 86mm)
|
||||
#let today = datetime.today()
|
||||
#let weather = json("weather.json")
|
||||
#let icon = none
|
||||
#if weather.current.weather_code == 0{
|
||||
icon = image("icons/sun.svg", width:3em)
|
||||
}
|
||||
|
||||
|
||||
#align(center)[
|
||||
#text(size:2em, weight: "bold")[#today.display("[weekday] [month repr:long] [year]")]
|
||||
|
||||
|
||||
#v(1fr)
|
||||
|
||||
#grid(
|
||||
columns: (1fr,2fr),
|
||||
align: (center+horizon, left+horizon),
|
||||
[#icon],[#text(size:3em)[#weather.current.temperature_2m #weather.current_units.temperature_2m]]
|
||||
#let icons_map = (
|
||||
"0": "icons/clear_day.svg",
|
||||
"1": "icons/clear_day.svg",
|
||||
"2": "icons/partly_cloudy_day.svg",
|
||||
"3": "icons/partly_cloudy_day.svg",
|
||||
"45": "icons/haze_day.svg",
|
||||
"48": "icons/haze_day.svg",
|
||||
"51": "icons/rain_day_night.svg",
|
||||
"53": "icons/rain_day_night.svg",
|
||||
"55": "icons/rain_day_night.svg",
|
||||
"56": "icons/sleet_day_night.svg",
|
||||
"57": "icons/sleet_day_night.svg",
|
||||
"61": "icons/rain_day_night.svg",
|
||||
"63": "icons/rain_day_night.svg",
|
||||
"65": "icons/rain_day_night.svg",
|
||||
"66": "icons/sleet_day_night.svg",
|
||||
"67": "icons/sleet_day_night.svg",
|
||||
"71": "icons/snow_day_night.svg",
|
||||
"73": "icons/snow_day_night.svg",
|
||||
"75": "icons/snow_day_night.svg",
|
||||
"77": "icons/snow_day_night.svg",
|
||||
"80": "icons/rain_day_night.svg",
|
||||
"81": "icons/rain_day_night.svg",
|
||||
"82": "icons/rain_day_night.svg",
|
||||
"85": "icons/snow_day_night.svg",
|
||||
"86": "icons/snow_day_night.svg",
|
||||
"95": "icons/thunder_day_night.svg",
|
||||
"96": "icons/hail_day_night.svg",
|
||||
"99": "icons/hail_day_night.svg",
|
||||
)
|
||||
|
||||
#v(1fr)
|
||||
#read("event.txt")
|
||||
#v(1fr)
|
||||
#let decimate_array(a,n:2) = {
|
||||
let ret = ()
|
||||
for (i,v) in a.enumerate(){
|
||||
if calc.rem-euclid(i,n) == 0{
|
||||
ret.push(v)
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
#align(center)[
|
||||
#text(size:1.3em, weight: "bold")[#today.display("[weekday] [month repr:long] [year]")]
|
||||
|
||||
#let times = ()
|
||||
#for i in range(24){
|
||||
times.push(datetime(hour:i,minute:0,second:0))
|
||||
}
|
||||
#let times = times.map(x=>x.display("[hour]"))
|
||||
#let codes = weather.hourly.weather_code.map(x => image(icons_map.at(str(x)), height:1em))
|
||||
#let temps = weather.hourly.temperature_2m
|
||||
#let values = decimate_array(times.zip(codes,temps),n: 2)
|
||||
|
||||
|
||||
#grid(
|
||||
columns: (1fr,1fr,1fr),
|
||||
..values.flatten().map(x => text(size:1.3em)[#x])
|
||||
)
|
||||
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue