Module:WeeklyEvent: Difference between revisions
Jump to navigation
Jump to search
m back to frame:preprocess |
remove next & s/this/next/ |
||
| (10 intermediate revisions by the same user not shown) | |||
| Line 15: | Line 15: | ||
local joiner = args.joiner or ' ' | local joiner = args.joiner or ' ' | ||
local weekday = args.weekday or 'Tuesday' | local weekday = args.weekday or 'Tuesday' | ||
local | local t_next = args.text_next or 'Next week' -- 'This week' | ||
local t_prev = args.text_prev or 'Last week' | local t_prev = args.text_prev or 'Last week' | ||
local preload = args.preload | local preload = args.preload | ||
local | local nextdate = d('Y m d', 'this ' .. weekday) -- 'this ' arg expected & needed | ||
local prevdate = d('Y m d', 'last ' .. weekday) | local prevdate = d('Y m d', 'last ' .. weekday) | ||
local | local nextTitle = table.concat({prefix, nextdate}, joiner) | ||
local prevTitle = table.concat({prefix, prevdate}, joiner) | local prevTitle = table.concat({prefix, prevdate}, joiner) | ||
local latestTitle, latestText | local latestTitle, latestText | ||
if exists(thisTitle) then | --if exists(thisTitle) then | ||
-- latestTitle, latestText = thisTitle, t_next | |||
elseif exists(prevTitle) then | -- elseif | ||
if exists(prevTitle) then | |||
latestTitle, latestText = prevTitle, t_prev | latestTitle, latestText = prevTitle, t_prev | ||
end | end | ||
| Line 53: | Line 51: | ||
end | end | ||
--[[ | |||
return frame:preprocess(out) | return frame:preprocess(out) | ||
]] | |||
-- no leading/trailing whitespace | -- no leading/trailing whitespace | ||
out = mw.text.trim(out) | |||
-- force inline rendering; content is parsed as wikitext inside a <span> | -- force inline rendering; content is parsed as wikitext inside a <span> | ||
return frame:extensionTag{ | |||
name = 'span', | |||
content = out, | |||
args = { class = 'weekly-event-inline' } -- optional | |||
} | |||
end | end | ||
return p | return p | ||
Latest revision as of 18:40, 23 February 2026
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_next = args.text_next or 'Next week' -- 'This week'
local t_prev = args.text_prev or 'Last week'
local preload = args.preload
local nextdate = d('Y m d', 'this ' .. weekday) -- 'this ' arg expected & needed
local prevdate = d('Y m d', 'last ' .. weekday)
local nextTitle = table.concat({prefix, nextdate}, joiner)
local prevTitle = table.concat({prefix, prevdate}, joiner)
local latestTitle, latestText
--if exists(thisTitle) then
-- latestTitle, latestText = thisTitle, t_next
-- elseif
if 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)
]]
-- no leading/trailing whitespace
out = mw.text.trim(out)
-- force inline rendering; content is parsed as wikitext inside a <span>
return frame:extensionTag{
name = 'span',
content = out,
args = { class = 'weekly-event-inline' } -- optional
}
end
return p