Module:WeeklyEvent: Difference between revisions
Jump to navigation
Jump to search
inline |
skip <p> output wrap from parsoid |
||
| Line 53: | Line 53: | ||
end | end | ||
return out | return frame:preprocess(out) | ||
end | end | ||
return p | return p | ||
Revision as of 16:14, 22 October 2025
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
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|%s]]', latestTitle, latestText)
else
out = out .. "''no recent page''"
end
out = out .. ' · ' ..
string.format('[[%s|%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)
end
return p