Usage
|
|
event_date |
|
|
|
|
{{ |
#invoke: |
Event countdown |
| |
countdown
|
| |
yyyy |
| |
mm |
| |
dd
|
}}
|
|
- For a multiple-day event:
|
|
start_date |
|
end_date |
|
|
|
|
|
|
{{ |
#invoke: |
Event countdown |
| |
countdown
|
| |
yyyy |
| |
mm |
| |
dd
|
| |
yyyy |
| |
mm |
| |
dd
|
}}
|
|
- For an unconfirmed event:
|
{{ |
#invoke: |
Event countdown |
| |
countdown |
| |
text=Unconfirmed
|
}}
|
|
Examples
- Future event:
{{#invoke:Event countdown|countdown|2025|1|1}}
→ Lua error: expandTemplate: template "Age in days" does not exist.
- Current event:
{{#invoke:Event countdown|countdown|2024|12|27}}
→ Lua error: expandTemplate: template "Age in days" does not exist.
- Past event:
{{#invoke:Event countdown|countdown|2018|11|25}}
→ Lua error: expandTemplate: template "Age in days" does not exist.
- "Month of May" event:
{{#invoke:Event countdown|countdown|2024|5|1|2024|5|31}}
→ Lua error: expandTemplate: template "Age in days" does not exist.
- Unconfirmed event:
{{#invoke:Event countdown|countdown|text=Unconfirmed}}
→ Unconfirmed
local p = {}
function p.countdown(frame)
local year1 = tonumber(frame.args.year1 or frame.args[1])
local month1 = tonumber(frame.args.month1 or frame.args[2])
local day1 = tonumber(frame.args.day1 or frame.args[3])
local year2 = tonumber(frame.args.year2 or frame.args[4])
local month2 = tonumber(frame.args.month2 or frame.args[5])
local day2 = tonumber(frame.args.day2 or frame.args[6])
local endtext = frame.args.endtext or "End of Event"
local livetext = frame.args.livetext or "Live Event"
local text = frame.args.text
local time1 = nil
local time2 = nil
local bgcolor = "#666666"
local textcolor = "#DDDDDD"
local span = mw.html.create("span")
span:css{
["display"] = "inline-block",
["font-weight"] = "bold",
["font-style"] = "italic",
["padding-left"] = "0.5em",
["padding-right"] = "0.5em",
["margin-bottom"] = "0.4em"
}
if text ~= nil or day1 == nil or month1 == nil or year1 == nil then
span
:css{background = bgcolor, color = textcolor}
:wikitext(text or "Invalid input")
return tostring(span)
end
time1 = frame:expandTemplate{title = "Age in days", args = {
year2 = year1,
month2 = month1,
day2 = day1
}}
time1 = tonumber(time1:gsub("−", "-") .. "")
if day2 == nil or month2 == nil or year2 == nil then
time2 = time1
else
time2 = frame:expandTemplate{title = "Age in days", args = {
year2 = year2,
month2 = month2,
day2 = day2
}}
time2 = tonumber(time2:gsub("−", "-") .. "")
end
if time1 > 0 then
bgcolor = "#C66320"
text = time1 .. " day"
if time1 > 1 then text = text .. "s" end
text = text .. " to go"
elseif time2 < 0 then
bgcolor = "#AA1111"
text = endtext
else
bgcolor = "#00B000"
text = livetext
end
textcolor = "#FFFFFF"
span
:css{background = bgcolor, color = textcolor}
:wikitext(text)
return tostring(span)
end
return p