Module:Scientific American volume issues
Jump to navigation
Jump to search
Implements {{Scientific American volume issues}}.
--[=[
Implements [[Template:Scientific American volume issues]]
]=]
local p = {} --p stands for package
local getArgs = require('Module:Arguments').getArgs
function pad_number(n, pad)
if n == nil or pad == nil or n < 0 or pad <= 0 then
return n
else
local padded_n = tostring(n)
while string.len(padded_n) < pad do
padded_n = "0" .. padded_n
end
return padded_n
end
end
function p.scientific_american_volume_issues(frame)
local args = getArgs(frame)
local volume = tonumber(args.volume or 1)
local series = tonumber(args.series or 1)
local issues = tonumber(args.issues or 52)
local volume_list = {}
for i = 1, issues do
volume_list[i] = "* [[Index:Scientific American - Series " .. series .. " - Volume " .. pad_number(volume, 3) .. " - Issue " .. pad_number(i, 2) .. ".pdf|" .. i .. "]]"
end
return "'''Volume " .. volume .. " issues:''' " .. frame:expandTemplate {
['title'] = 'flatlist',
['args'] = {table.concat(volume_list, "\n")}
}
end
return p