Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Song versions line: Difference between revisions

From Sekaipedia
Content added Content deleted
mNo edit summary
(do not link if not in character list)
Line 4: Line 4:


local p = {}
local p = {}

local characters = {
'hatsune miku', 'kagamine rin', 'kagamine len', 'megurine luka', 'meiko', 'kaito',
'hoshino ichika', 'tenma saki', 'mochizuki honami', 'hinomori shiho',
'hanasato minori', 'kiritani haruka', 'momoi airi', 'hinomori shizuku',
'azusawa kohane', 'shiraishi an', 'shinonome akito', 'aoyagi toya',
}


local function formatSingers(arg)
local function formatSingers(arg)
Line 9: Line 16:
local splits = utils.split(arg, ",")
local splits = utils.split(arg, ",")
for i=1,#splits do
for i=1,#splits do
splits[i] = '[[' .. splits[i] .. ']]'
if array_index_of(characters, splits[i]) ~= -1 then
splits[i] = '[[' .. splits[i] .. ']]'
end
end
end
return table.concat(splits, ", ")
return table.concat(splits, ", ")
Line 31: Line 40:
root:tag('td'):wikitext(args['version'])
root:tag('td'):wikitext(args['version'])
root:tag('td'):wikitext(formatSingers(args['singers']))
if yesno(args['no link'], nil) then
root:tag('td'):wikitext(args['singers'])
else
root:tag('td'):wikitext(formatSingers(args['singers']))
end
root:tag('td'):wikitext(formatFile(args['audio']))
root:tag('td'):wikitext(formatFile(args['audio']))

Revision as of 02:15, 9 August 2021

Documentation for this module may be created at Module:Song versions line/doc

local getArgs = require('Module:Arguments').getArgs
local utils = require('Module:Utilities')
local yesno = require('Module:Yesno')

local p = {}

local characters = { 
	'hatsune miku', 'kagamine rin', 'kagamine len', 'megurine luka', 'meiko', 'kaito',
	'hoshino ichika', 'tenma saki', 'mochizuki honami', 'hinomori shiho',
	'hanasato minori', 'kiritani haruka', 'momoi airi', 'hinomori shizuku',
	'azusawa kohane', 'shiraishi an', 'shinonome akito', 'aoyagi toya',
}

local function formatSingers(arg)
	if arg and arg ~= '' then
		local splits = utils.split(arg, ",")
		for i=1,#splits do
			if array_index_of(characters, splits[i]) ~= -1 then
				splits[i] = '[[' .. splits[i] .. ']]'
			end
		end
		return table.concat(splits, ", ")
	end
	
	return nil
end

local function formatFile(arg)
	if arg and arg ~= '' then
		return '[[' .. arg .. ']]'
	end
	
	return nil
end

function p.main(frame)
	local args = getArgs(frame)
	
	local root = mw.html.create('tr')
	
	root:tag('td'):wikitext(args['version'])
	root:tag('td'):wikitext(formatSingers(args['singers']))
	root:tag('td'):wikitext(formatFile(args['audio']))
	
	return tostring(root)
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.