Module:WeeklyEvent
Jump to navigation
Jump to search
local p = {}
local function d(fmt, rel)
return mw.getContentLanguage():formatDate(fmt, rel)
end
local function exists(t)
local title = mw.title.new(t) return title and title.exists
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' local t_this = args.text_this or 'This week' local t_prev = args.text_prev or 'Last week' local t_next = args.text_next or 'Next week' local preload = args.preload
local thisdate = d('Y m d', 'this ' .. weekday)
local prevdate = d('Y m d', 'last ' .. weekday)
local nextdate = d('Y m d', 'next ' .. weekday)
local thisTitle = table.concat({prefix, thisdate}, joiner)
local prevTitle = table.concat({prefix, prevdate}, joiner)
local nextTitle = table.concat({prefix, nextdate}, joiner)
local latestTitle, latestText if exists(thisTitle) then latestTitle, latestText = thisTitle, t_this elseif exists(prevTitle) then latestTitle, latestText = prevTitle, t_prev end
-- build inline wikitext local out =
if latestTitle then
out = out .. string.format('%s', latestTitle, latestText)
else
out = out .. "no recent page"
end
out = out .. ' · ' ..
string.format('%s', nextTitle, t_next)
if preload then
local url = mw.uri.canonicalUrl(nextTitle, { action='edit', preload=preload })
out = out .. ' · ' ..
string.format('[%s create next]', tostring(url))
end
--[[ return frame:preprocess(out) ]] -- no leading/trailing whitespace
out = mw.text.trim(out)
-- force inline rendering; content is parsed as wikitext inside a
return frame:extensionTag{
name = 'span',
content = out,
args = { class = 'weekly-event-inline' } -- optional
}
end
return p