Module:CatInfobox

From StreetCatWiki

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

local capiunto = require 'capiunto'

local p = {}

function p.main(frame)
	local args = frame:getParent().args
	local headerStyle
	if args.headerstyle and args.headerstyle ~= '' then
		headerStyle = string.format("background-color: %s;", args.headerstyle)
	else
		headerStyle = "background-color: grey;"
	end
	local retval = capiunto.create({
		title = args.name,
		headerStyle = headerStyle,
		captionStyle = "text-align: center;",
		imageStyle = "text-align: center;",
	})
	retval:addImage("[[File:" .. args.image .. "|300px]]", args.caption)
	if args.other_names then retval:addRow("Other name(s)", args.other_names) end
	retval:addRow("Breed", args.breed or "Unknown")
	:addRow("Coat", args.coat or "Unknown")
	:addRow("Sex", args.sex or "Unknown")
	:addRow("Rarity", args.rarity or "Unknown")
	if args.occupation then retval:addRow("Occupation", args.occupation) end
	if args.appearance then retval:addRow("Appearance", args.appearance) end
	if args.eye_color then retval:addRow("Eye Color", args.eye_color) end
	if args.personality then retval:addRow("Personality", args.personality) end
	retval:addRow("First known sighting", args.first_sighting or "Unknown")
	if args.partner or args.children or args.siblings or args.parents or args.other_relations then
		retval:addHeader("Relations")
		:addRow("Parents", args.parents or "Unknown")
		:addRow("Siblings", args.siblings or "Unknown")
		:addRow("Partner", args.partner or "None")
		:addRow("Children", args.children or "None")
	end
	if args.other_relations then retval:addRow("Other", args.other_relations) end
	return retval
end

return p