Module:Characters
Documentation for this module may be created at Module:Characters/doc
local p = {}
local cargo = mw.ext.cargo
function p.list(frame)
local query = {
limit = '1000',
orderBy = 'Characters.name_en ASC',
}
local fields = {'_pageName','name_en','icon','color_main','color_sub'}
local characters = cargo.query('Characters',
table.concat(fields, ','), query)
local root = mw.html.create('div'):cssText('display:flex; flex-flow:row wrap;')
for _, ch in ipairs(characters) do
if (ch.icon) then
local template = frame:expandTemplate{
title='Character Icon',
args={
icon=ch.icon,
name_en=ch.name_en,
color_main=ch.color_main,
color_sub=ch.color_sub,
link=ch._pageName
}
}
root:wikitext(template)
end
end
return root
end
function p.profile(frame)
local pageName = frame.args[1]
local query = {
limit = '1',
where = 'name_en="' .. pageName .. '"',
}
local fields = {'strengths','weaknesses','ears','tail','family',
'my_rule','phone_background','before_a_race','good_subject',
'secret_pride','frequent_purchase','secret1','secret2'}
local characters = cargo.query('Characters',
table.concat(fields, ','), query)
local ch = characters[1]
if ch then
local template = frame:expandTemplate{
title='Character Profile/table',
args={
strengths=ch.strengths,
weaknesses=ch.weaknesses,
ears=ch.ears,
tail=ch.tail,
family=ch.family,
my_rule=ch.my_rule,
phone_background=ch.phone_background,
before_a_race=ch.before_a_race,
good_subject=ch.good_subject,
secret_pride=ch.secret_pride,
frequent_purchase=ch.frequent_purchase,
secret1=ch.secret1,
secret2=ch.secret2,
}
}
return template
end
return frame.args[1]
end
return p