Module:Sandbox/ChaoticShadow/SongDataLine: Difference between revisions

From TestWiki
Content added Content deleted
No edit summary
No edit summary
Line 5: Line 5:


local root = mw.html.create('table'):addClass('wikitable')
local root = mw.html.create('table'):addClass('wikitable')
local what = ''


function p.main(frame)
function p.main(frame)
Line 52: Line 53:
content = lang.lyrics[i]
content = lang.lyrics[i]
end
end
what = what .. lang.lyrics[i] .. ',' .. tonumber(lang.lyrics[i] == nil or lang.lyrics[i] == '') .. "|"
mw.log(content)
mw.log(content)
_row:tag('td'):wikitext(content)
_row:tag('td'):wikitext(content)
Line 63: Line 66:
end
end


return tostring(root) .. mw.dumpObject(args) .. mw.dumpObject(languages)
return tostring(root) .. mw.dumpObject(args) .. mw.dumpObject(languages) .. what
end
end



Revision as of 03:06, 24 June 2021

Documentation for this module may be created at Module:Sandbox/ChaoticShadow/SongDataLine/doc

local getArgs = require('Module:Arguments').getArgs

local p = {}
local args = {}

local root = mw.html.create('table'):addClass('wikitable')
local what = ''

function p.main(frame)
	args = getArgs(frame)

	languages = {
		{
			name = "jp",
			pattern = "^jp[0-9]+$",
			lyrics = {}
		},
		{
			name = "en",
			pattern = "^en[0-9]+$",
			lyrics = {}
		}
	}
	
	for k,v in pairs(args) do
		for _,lang in ipairs(languages) do
			if string.match(k, lang.pattern) then
				ind = tonumber(string.match(k, "[0-9]+"))
			
				lang.lyrics[ind] = v
				break
			end
		end
	end
	
	local maxLen = 0
	for _,lang in pairs(languages) do
		maxLen = math.max(maxLen, #lang.lyrics)
	end
	
	local _row = root:tag('tr')
	for _,lang in ipairs(languages) do
		_row:tag('th'):css('width', string.format("%d\%%", 100 / #languages)):wikitext(lang.name)
	end
	
	for i=1,maxLen,1 do
		local _row = root:tag('tr')
		
		local nextContent = nil
		for _,lang in ipairs(languages) do
			local content = "temp"
			if lang.lyrics[i] == nil or lang.lyrics[i] == '' then
				content = lang.lyrics[i]
			end
			
			what = what .. lang.lyrics[i] .. ',' .. tonumber(lang.lyrics[i] == nil or lang.lyrics[i] == '') .. "|"
			mw.log(content)
			_row:tag('td'):wikitext(content)
			
			nextContent = lang.lyrics[i+1] or nextContent
		end
		
		if nextContent == nil then
			break
		end
	end

	return tostring(root) .. mw.dumpObject(args) .. mw.dumpObject(languages) .. what
end

return p