Module:Character Infobox: Difference between revisions

From NOISZ Wiki
mNo edit summary
mNo edit summary
Line 6: Line 6:
title = tostring(mw.title.getCurrentTitle())
title = tostring(mw.title.getCurrentTitle())
     } )
     } )
if args.image1 and string.find(args.image1,"<tabber>") then
if string.find(args.image1,"<tabber>") then
infobox:addImage(args.image1, args.caption)
infobox:addImage(args.image1, args.caption)
elseif args.image1 then
elseif args.image1 then

Revision as of 17:24, 11 June 2025

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

local capiunto = require 'capiunto'
local p = {}
function p.main(frame) 
	local args = frame:getParent().args
	local infobox = capiunto.create( {
		title = tostring(mw.title.getCurrentTitle())
    	} )
	if string.find(args.image1,"<tabber>") then
		infobox:addImage(args.image1, args.caption)
	elseif args.image1 then
		infobox:addImage('[[File:' .. args.image1 .. '|200px]]', args.caption)
	end
	local attributes = 
	{
		{'Voice', args.voice },
		{ 'JP Name', args.jpname },
		{ 'Also known as', args.also_known_as }
	}
	local physical = 
	{
		{ 'Eye Colour', args.eye_colour },
		{ 'Hair Colour', args.hair_colour },
		{ 'Height', args.height }
	}
	local biographical = 
	{
		{ 'Age', args.age },
		{ 'Birthday', args.birthday },
		{ 'Likes', args.likes },
		{ 'Dislikes', args.dislikes },
		{ 'Relationships', args.relationships }
	}
	if args.voice or args.jpname or args.also_known_as then
		for _, row in ipairs(attributes) do
			local label, value = row[1], row[2]
			if value and value ~= '' then
           		infobox:addRow(label, value)
			end
		end
	end
	if args.eye_colour or args.hair_colour or args.height then
		infobox:addHeader( 'Physical' )
		for _, row in ipairs(physical) do
			local label, value = row[1], row[2]
			if value and value ~= '' then
           		infobox:addRow(label, value)
			end
		end
	end
	if args.age or args.birthday or args.likes or args.dislikes or args.relationships then
		infobox:addHeader( 'Biographical' )
		for _, row in ipairs(biographical) do
			local label, value = row[1], row[2]
			if value and value ~= '' then
           		infobox:addRow(label, value)
			end
		end
	end
	
    return infobox
end

return p