local p = --p stands for package
function p.templateEveryYearToPresent (frame) -- use the parent args if available, assuming this is embedded in a template parentArgs = frame:getParent.args argsToUse = ((parentArgs[1] and parentArgs) or frame.args) years = yearsFromYearToPresent(argsToUse[1]) toReturn = "" templateArgs = templateDoNotConsume = -- allow transcluding templates to specify arguments they consume, -- so we should ignore them for arg in mw.text.gsplit(frame.args['templatedonotconsume'] or , ',', true) do templateDoNotConsume[arg] = true end for key, arg in pairs(argsToUse) do -- taking everything beyond the second arg, we pass it onto the template -- this includes named args, so we don't want to just do > 2 if (key ~= 1 and key ~= 2 and not templateDoNotConsume[key] ) then numericKey = tonumber(key) if (numericKey) then -- templateArgs[1] will always be the year (lua arrays start at 1) -- templateArgs[2] should be the first other template param -- which is args[3], so we have here [key - 1] templateArgs[key - 1] = arg else -- named params we just shove in templateArgs[key] = arg end end end for index, year in ipairs(years) do templateArgs[1] = tostring(year) toReturn = toReturn .. (index
function yearsFromYearToPresent(year) startyear = tonumber(year) if (startyear
return p