Puroresu System Wiki
Advertisement

Documentation for this module may be created at Module:Infobox/links/doc

local links = {}
local Icon = require('Module:Icon')
local IMDb = require('Module:IMDb')
local getArgs = require('Module:Arguments').getArgs

local function makeInvokeFunc(funcName)
	return function (frame)
		local args = getArgs(frame)
		return links[funcName](args)
	end
end

links.wikipedia = makeInvokeFunc('_wikipedia')
links.twitter = makeInvokeFunc('_twitter')
links.imdbname = makeInvokeFunc('_imdbname')

function links._wikipedia( args )
	local id = args['id'] or args[1] or ''
	local label = args['label'] or args[2] or 'Wikipedia'
	local icon = args['icon'] or Icon._icon( { common = 'wikipedia', size = '15px', link = 'wikipedia:'..id } )
	return icon..' [[wikipedia:'..id..'|'..label..']]'
end

function links._twitter( args )
	local id = args['id'] or args[1] or ''
	local label = args['label'] or args[2] or 'Twitter'
	local post = args['post'] or args[3]
	if post then post = '/status/' .. post else post = '' end
	local iconargs = { common = 'twitter', size = '10px', link = 'https://twitter.com/'..id..post}
	local icon = args['icon'] or Icon._icon( iconargs )
	return icon..tostring( mw.html.create('span'):addClass('plainlinks'):wikitext(' [https://twitter.com/'..id..post..' '..label..']'):allDone() )
end

function links._facebook( args )
	local id = args['id'] or args[1] or ''
	local label = args['label'] or args[2] or 'Facebook'
	local post = args['post'] or args[3]
	local pageid = args['pageid']
	if pageid then id = 'pages/' .. pageid end
	if post then post = '/posts/' .. post else post = '' end
	local iconargs = { common = 'facebook', size = '15px', link = 'https://facebook.com/'..id..post}
	local icon = args['icon'] or Icon._icon( iconargs )
	return icon..tostring( mw.html.create('span'):addClass('plainlinks'):wikitext(' [https://facebook.com/'..id..post..' '..label..']'):allDone() )
end

function links._imdbname( args )
	local id = args['id'] or args[1] or ''
	local label = args['label'] or args[2] or 'IMDb'
	local iconargs = { common = 'imdb', size = '15px', link = 'imdb:nm'..id}
	local icon = args['icon'] or Icon._icon( iconargs )
	return icon..' [[imdb:nm'..id..'|'..label..']]'
end

function links._tumblr( args )
--
end

function links._instagram( args )
--
end

-- Eventually, this might include video tags. For now, let's not.

return links
Advertisement