Module:Top icons: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| scape_>Spineweilder No edit summary | scape_>Spineweilder  No edit summary | ||
| Line 6: | Line 6: | ||
| 		params = { 'wikipedia', 'wp', 'w' }, | 		params = { 'wikipedia', 'wp', 'w' }, | ||
| 		abbr = 'W', | 		abbr = 'W', | ||
| 		title = 'Wikipedia also has an article on  | 		title = 'Wikipedia also has an article on {{PAGENAME}}.', | ||
| 		}, | 		}, | ||
| 	rsc = { | 	rsc = { | ||
| Line 12: | Line 12: | ||
| 		params = { 'rsc', 'classic', 'c' }, | 		params = { 'rsc', 'classic', 'c' }, | ||
| 		abbr = 'C', | 		abbr = 'C', | ||
| 		title = 'The RuneScape Classic Wiki also has an article on  | 		title = 'The RuneScape Classic Wiki also has an article on {{PAGENAME}}.', | ||
| 		}, | 		}, | ||
| 	rs = { | 	rs = { | ||
Revision as of 03:00, 17 January 2017
Documentation for this module may be created at Module:Top icons/doc
local p = {}
local sites = {
	wp = { 
		format = '[[wikipedia:%s|%s]]',
		params = { 'wikipedia', 'wp', 'w' },
		abbr = 'W',
		title = 'Wikipedia also has an article on {{PAGENAME}}.',
		},
	rsc = {
		format = '[[w:c:runescapeclassic:%s|%s]]',
		params = { 'rsc', 'classic', 'c' },
		abbr = 'C',
		title = 'The RuneScape Classic Wiki also has an article on {{PAGENAME}}.',
		},
	rs = {
		format = '[[runescape:%s|%s]]',
		params = { 'runescape', 'rs', 'rsw', 'rs3' },
		abbr = 'RS',
		title = 'The RuneScape Wiki also has an article on {{PAGENAME}}.',
		},
	}
local order = { 'wp', 'rsc', 'rs' }
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