Module:Team roster navbox
Jump to navigation
Jump to search
-- This module implements
local me = { }
local Navbox = require('Module:Navbox')
local function colorlinks(v, s) if v and v ~= and s and s ~= then if not mw.ustring.match(v, '<span style') then v = mw.ustring.gsub(v, '%[%[([^%[%]|]*)%]%]', '%1') v = mw.ustring.gsub(v, '%[%[([^%[%]|]*)|([^%[%]|]*)%]%]', '%2') end end return v end
local function extractstyle(v) local r = local slist = mw.text.split(mw.ustring.gsub(mw.ustring.gsub(v or , '&#[Xx]23;', '#'), '#', '#'), ';') for k = 1,#slist do local s = slist[k] if s:match('^[%s]*background') or s:match('^[%s]*color') then r = r .. s .. ';' end end return r end
function me.generateRosterNavbox(frame)
local args = { } local parentArgs = frame:getParent().args -- Massage the styles for coloring the links local basestyle = extractstyle(parentArgs['basestyle'] or ) local titlestyle = extractstyle(parentArgs['titlestyle'] or ) local abovestyle = extractstyle(parentArgs['abovestyle'] or ) local groupstyle = extractstyle(parentArgs['groupstyle'] or ) local belowstyle = extractstyle(parentArgs['belowstyle'] or ) if basestyle ~= then titlestyle = basestyle .. ';' .. titlestyle abovestyle = basestyle .. ';' .. abovestyle groupstyle = basestyle .. ';' .. groupstyle belowstyle = basestyle .. ';' .. belowstyle end -- Color links before passing them to the Navbox helper function for argName, value in pairs(parentArgs) do if value ~= then if type(argName) == 'string' then if argName == 'title' then value = colorlinks(value, titlestyle) elseif argName == 'above' then value = colorlinks(value, abovestyle) elseif mw.ustring.find(argName, '^group[0-9]') then value = colorlinks(value, groupstyle) elseif argName == 'below' then value = colorlinks(value, belowstyle) end args[argName] = value end end end args['nowrapitems'] = 'yes'
-- Note Navbox.navbox() has a kludge to order the parent frame's args -- into a specific order. For now, this is omitted from this module.
return Navbox._navbox(args)
end -- function me.generateRosterNavbox
return me