Module:Top icons

local p = {}

local sites = { rs = { format = '%s', params = { 'runescape', 'rs', 'rsw', 'rs3' }, abbr = 'RS', title = 'The RuneScape Wiki also has an article on %s.', },	os = { format = '%s', params = { 'oldschool', 'osrs', 'os', '2007', '07' }, abbr = 'OS', title = 'The Old School RuneScape Wiki also has an article on %s.', },	wp = { format = '%s', params = { 'wikipedia', 'wp', 'w' }, abbr = 'WP', title = 'Wikipedia also has an article on %s.', },	}

local order = { 'rs', 'os', 'wp' }

local allparams = {}

function p.main(frame) local args = frame:getParent.args local pagename = mw.title.getCurrentTitle.fullText local vals = {} -- create allparams for s,t in pairs(sites) do		for _,v in ipairs(t.params) do			allparams[v] = s		end end -- loop named params for i,v in pairs(allparams) do		if args[i] and not vals[v] then vals[v] = args[i] end end -- loop unnamed params local i = 1 local v	while args[i] do		v = allparams[args[i]] if v and not vals[v] then vals[v] = pagename end i = i + 1 end local ret = mw.html.create('div') ret:addClass('topright topright-icon') for _,v in ipairs(order) do		if vals[v] then local span = mw.html.create('span') span:wikitext(sites[v].abbr) :addClass('rs-header-icon rs-header-icon-'..v)				:attr('title', string.format(sites[v].title, vals[v])) ret:wikitext(string.format(sites[v].format, vals[v], tostring(span))) end end

return tostring(ret) end

return p