Module:Variants: Difference between revisions

Only link to a page once
(Fix link output)
(Only link to a page once)
 
Line 21:
'?Variant name',
'?Version anchor',
'?-Has subobject #',
'?#-',
get_images and '?Image#64px;x64px = Image' or nil,
Line 37 ⟶ 38:
local contents
if smw_data then
local formatted, pageList = {}, {}
for _, entry in ipairs(smw_data) do
local variant_name = entry['Variant name']
if variant_name then
local page = entry['-Has subobject'] or entry[1]
if page:sub(1, 1 + #variant_name + #' (grade ') == ':' .. variant_name .. ' (grade ' and page:sub(-1) == ')' then
local grade_number = page:sub(2 + #variant_name + #' (grade ', -2)
Line 47 ⟶ 48:
variant_name = 'Grade ' .. grade_number
end
local anchor = entry['Version anchor'] and ' § ' .. entry['Version anchor'] or ''
 
if not pageList[page] then
table.insert(formatted, ('[[%s|%s%s]]'):format(page, variant_name, anchor))
pageList[page] = true
end
else
table.insert(formatted, ('[[%s]]'):format(entry[1]))