Module:TFA title
Appearance
| File:Green check.svg | This module is rated as ready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on help pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through sandbox testing rather than repeated trial-and-error editing. |
Lua wrapper around the data in Template:TFA title/data.json, primarily to be used in Template:Editnotices/Namespace/Main.
Usage
{{#invoke:TFA title|is_todays_tfa|{{PAGENAME}}}}, returns yes if it is the TFA, and nothing if it is not.
local p = {}
local data = mw.loadJsonData("Template:TFA title/data.json")
-- Internal, today's date as YYYY-MM-DD
local function today()
return os.date("%Y-%m-%d")
end
-- Get the TFA title for the specified "YYYY-MM-DD" date. May be
-- a single title, an array of multiple titles, or nil, if no title is known
function p.title(date)
return data.titles[date] or nil
end
-- Today's TFA, see title() for possible return values
function p.today_title()
return p.title(today())
end
-- Is the specified title the TFA today?
-- Returns "yes" or "", for use with {{#if:}}
function p.is_todays_tfa(frame)
return p.is_tfa_on(frame.args[1], today())
end
-- Is the specified title the TFA on the specified date?
-- Returns "yes" or "", for use with {{#if:}}
function p.is_tfa_on(title, date)
local days_title = p.title(date)
if days_title == nil then
-- no clue
return ""
end
if type(days_title) == "string" then
if title == days_title then
return "yes"
else
return ""
end
end
-- table case, multiple titles
for _, check in pairs( days_title ) do
if check == title then
return "yes"
end
end
return ""
end
return p