Module:Nested Lists: Difference between revisions
ReisuDesign (talk | contribs) No edit summary |
ReisuDesign (talk | contribs) No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 16: | Line 16: | ||
wrapper = {'Template:Nested Lists'} | wrapper = {'Template:Nested Lists'} | ||
}) | }) | ||
return p._main(args) | return p._main(args) | ||
end | end | ||
| Line 24: | Line 23: | ||
local link = args.link == '1' | local link = args.link == '1' | ||
local iconFormat = args.icon | local iconFormat = args.icon | ||
local iconMain = args.icon_main == '1' | |||
local iconSize = args.icon_size or '25' | local iconSize = args.icon_size or '25' | ||
| Line 29: | Line 29: | ||
iconSize = mw.text.trim(tostring(iconSize)) | iconSize = mw.text.trim(tostring(iconSize)) | ||
iconSize = mw.ustring.gsub(iconSize, '[pP][xX]$', '') | iconSize = mw.ustring.gsub(iconSize, '[pP][xX]$', '') | ||
if iconSize == '' then | if iconSize == '' then | ||
iconSize = '25' | iconSize = '25' | ||
| Line 46: | Line 45: | ||
-- Determine indentation marker. | -- Determine indentation marker. | ||
local prefix = mw.ustring.sub(item, 1, 2) | local prefix = mw.ustring.sub(item, 1, 2) | ||
if levels[prefix] ~= nil then | if levels[prefix] ~= nil then | ||
marker = prefix | marker = prefix | ||
| Line 54: | Line 52: | ||
local level = levels[marker] or 0 | local level = levels[marker] or 0 | ||
-- | -- [no] disables the icon for this item. | ||
local noIcon = false | local noIcon = false | ||
local customIcon = nil | local customIcon = nil | ||
if mw.ustring.sub(text, 1, 4) == '[no]' then | if mw.ustring.sub(text, 1, 4) == '[no]' then | ||
noIcon = true | noIcon = true | ||
text = mw.text.trim(mw.ustring.sub(text, 5)) | text = mw.text.trim(mw.ustring.sub(text, 5)) | ||
else | else | ||
-- [Icon Name.png] specifies a custom icon. | |||
local customIconName, remainingText = | local customIconName, remainingText = | ||
mw.ustring.match(text, '^%[([^%]]+)%]%s*(.*)$') | mw.ustring.match(text, '^%[([^%]]+)%]%s*(.*)$') | ||
| Line 77: | Line 73: | ||
local target = text | local target = text | ||
local label = text | local label = text | ||
local separator = mw.ustring.find(text, '|', 1, true) | local separator = mw.ustring.find(text, '|', 1, true) | ||
| Line 98: | Line 93: | ||
local iconName = customIcon | local iconName = customIcon | ||
-- | -- Use the global icon format unless icon_main is enabled | ||
if not iconName and iconFormat and iconFormat ~= '' then | -- and this is not a level 0 item. | ||
if not iconName and iconFormat and iconFormat ~= '' and (not iconMain or level == 0) then | |||
iconName = mw.ustring.gsub( | iconName = mw.ustring.gsub( | ||
iconFormat, | iconFormat, | ||
| Line 110: | Line 106: | ||
if iconName and iconName ~= '' then | if iconName and iconName ~= '' then | ||
-- Check whether the requested icon exists. | |||
if not exists.checkExists('File:' .. iconName) then | |||
iconName = 'Unknown.png' | |||
end | |||
-- Link the icon to the item page if it exists. | |||
if pageExists then | if pageExists then | ||
icon = string.format( | icon = string.format( | ||