Module:Events by year for decade
Appearance
Implements {{Events by year for decade}}
local p = {}
local page_content = {}
local function get_section(frame, page_name, section_name)
if page_content[page_name] == nil then
local title = mw.title.new(page_name)
if title then
if title.redirectTarget then title = title.redirectTarget end
page_content[page_name] = title:getContent()
end
end
if page_content[page_name] then
if mw.ustring.find(page_content[page_name], "=%s*" .. section_name .. "%s*=", 1, false) then
return frame:preprocess("\n{{#section-h::" .. page_name .. "|".. section_name .. "}}")
end
end
return ""
end
p.main = function(frame)
frame.args = frame:getParent().args
return p[''](frame)
end
p[''] = function(frame)
local output = {
frame:expandTemplate{ title = 'TOC limit', args = {3} },
'\n==Events==\n'
}
local n = tonumber((frame.args[1] or '0') .. '0') or 0
for i = n, n + 9 do
if i == 0 then output[3] = '' else
local year = frame:expandTemplate{ title='dr', args={'y', 'y', i, 0, n < 100 and 'na' or 'n'}}
local year2 = frame:expandTemplate{ title='dr', args={'y', 'y', i, 0, n <= 1000 and 'na' or 'n'}}
local section = '== ' .. year .. '==\n' .. mw.text.trim(
frame:expandTemplate{ title ='transcluded section', args = { year2 }} .. ' ' ..
get_section(frame,year2, 'Events')) .. '\n'
output[1 + #output] = section:gsub('==', '===')
end
end
if 'Template:Events by year for decade' ~= mw.title.getCurrentTitle().fullText then
output[13] = '[[Category:' .. n ..'s]]'
end
return table.concat(output)
end
return p