Module:Singles
Appearance
local p = {}
-- Ripped from Module:Infobox. TODO: Make a utility module that can do this kind of thing
local function getArgNums(frame, prefix)
-- Returns a table containing the numbers of the arguments that exist
-- for the specified prefix. For example, if the prefix was 'data', and
-- 'data1', 'data2', and 'data5' exist, it would return {1, 2, 5}.
local nums = {}
for k, v in pairs(frame.args) do
local num = tostring(k):match('^' .. prefix .. '([1-9]%d*)$')
if num then table.insert(nums, tonumber(num)) end
end
table.sort(nums)
return nums
end
function p.main(frame)
local out = [=[<tr style="text-align:center;">
<th style="background:{{Template:Infobox album/color|{{{Type|}}}}};" colspan="3">[[Single (music)|Singles]] from ''{{{Name}}}''</th>
</tr>
<tr style="text-align:left; vertical-align:top; line-height:11px;">
<td colspan="3">]=]
local nums = getArgNums(frame, '[Ss]ingle ')
for x,num in pairs(nums) do
out = out .. '# <span class="item"><span class="fn">"' .. (args['Single ' .. num] or args['single ' .. num]) .. '"</span>'
end
out = out .. [=[</td>
</tr>]=]
return out
end
return p