Module:WeeklyEvent
https://dev.fandom.com/wiki/Lua_reference_manual/Scribunto_libraries
https://en.wikipedia.org/wiki/Wikipedia:Comparable_Lua_functions_to_wikitext
local p = {}
local function d(fmt, rel)
return mw.getContentLanguage():formatDate(fmt, rel)
end
function p.links(frame)
local args = frame:getParent().args
local prefix = args.prefix or 'Meeting Notes'
local joiner = args.joiner or ' '
local weekday = args.weekday or 'Tuesday'
-- show segment iff arg PROVIDED (nil => omit); blank string allowed
local t_prev = args.text_prev
local t_this = args.text_this
local t_next = args.text_next
local preload = args.preload
local t_create = args.create_text -- show create link iff provided (and preload nonempty)
local prevdate = d('Y m d', 'last ' .. weekday)
local thisdate = d('Y m d', 'this ' .. weekday)
local nextdate = d('Y m d', 'next ' .. weekday)
local prevTitle = table.concat({prefix, prevdate}, joiner)
local thisTitle = table.concat({prefix, thisdate}, joiner)
local nextTitle = table.concat({prefix, nextdate}, joiner)
local parts = {}
local function add_link(title, label)
table.insert(parts, string.format('[[%s|%s]]', title, label or ''))
end
if t_prev ~= nil then add_link(prevTitle, t_prev) end
if t_this ~= nil then add_link(thisTitle, t_this) end
if t_next ~= nil then add_link(nextTitle, t_next) end
if preload and preload ~= '' and t_create ~= nil then
local url = mw.uri.canonicalUrl(nextTitle, { action='edit', preload=preload })
table.insert(parts, string.format('[%s %s]', tostring(url), t_create))
end
local out = mw.text.trim(table.concat(parts, ' · '))
return frame:extensionTag{
name = 'span',
content = out,
args = { class = 'weekly-event-inline' }
}
end
return p