Module:TFA title
![]() | 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. |
![]() | This module is currently protected from editing. See the protection policy and protection log for more details. Please discuss any changes on the talk page; you may submit an edit request to ask an administrator to make an edit if it is uncontroversial or supported by consensus. You may also request that this page be unprotected. |
Lua wrapper around the data in Template:TFA title/data.json, primarily to be used in Template:Editnotices/Namespace/Main.
Usage
[edit]{{#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