More actions
No edit summary |
added new classes for displaying the header and tiers for consistent positioning. |
||
(4 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
html:tag('div'):addClass('mastery-card__image') | html:tag('div'):addClass('mastery-card__image') | ||
:wikitext(string.format('[[File:%s|250px]]', mastery.image or '')) | :wikitext(string.format('[[File:%s|250px]]', mastery.image or '')) | ||
local header = | local content = html:tag('div'):addClass('mastery-card__content') | ||
local header = content:tag('div'):addClass('mastery-card__header') | |||
header:tag('div'):addClass('mastery-card__name'):wikitext(mastery.name or '') | header:tag('div'):addClass('mastery-card__name'):wikitext(mastery.name or '') | ||
header:tag('div'):addClass('mastery-card__description'):wikitext(mastery.desc or '') | header:tag('div'):addClass('mastery-card__description'):wikitext(mastery.desc or '') | ||
local tiers = content:tag('div'):addClass('mastery-card__tiers') | |||
local function addTier(tier, reward, req) | local function addTier(tier, reward, req) | ||
local group = | local group = tiers:tag('div'):addClass('mastery-card__tier-group') | ||
local block = group:tag('div'):addClass('mastery-card__tier-details') | local block = group:tag('div'):addClass('mastery-card__tier-details') | ||
block:tag('div'):addClass('mastery-card__tier'):wikitext(tier) | block:tag('div'):addClass('mastery-card__tier'):wikitext(tier) |
Latest revision as of 11:41, 11 June 2025
Documentation for this module may be created at Module:MasteryCards/doc
local p = {}
local function renderMasteryCard(mastery)
local html = mw.html.create('div'):addClass('mastery-card')
html:tag('div'):addClass('mastery-card__image')
:wikitext(string.format('[[File:%s|250px]]', mastery.image or ''))
local content = html:tag('div'):addClass('mastery-card__content')
local header = content:tag('div'):addClass('mastery-card__header')
header:tag('div'):addClass('mastery-card__name'):wikitext(mastery.name or '')
header:tag('div'):addClass('mastery-card__description'):wikitext(mastery.desc or '')
local tiers = content:tag('div'):addClass('mastery-card__tiers')
local function addTier(tier, reward, req)
local group = tiers:tag('div'):addClass('mastery-card__tier-group')
local block = group:tag('div'):addClass('mastery-card__tier-details')
block:tag('div'):addClass('mastery-card__tier'):wikitext(tier)
block:tag('div'):addClass('mastery-card__reward'):wikitext(reward or '')
group:tag('div'):addClass('mastery-card__requirement'):wikitext(req or '')
end
addTier('Bronze', mastery.bronzeReward, mastery.bronzeReq)
addTier('Silver', mastery.silverReward, mastery.silverReq)
addTier('Gold', mastery.goldReward, mastery.goldReq)
return tostring(html)
end
function p.main(frame)
local args = frame:getParent().args
local html = mw.html.create('div'):addClass('mastery-container')
local MAX_CARDS = 15
for i=1, MAX_CARDS do
if not args['name'..i] or args['name'..i] == '' then break end
local mastery = {
image = args['image'..i],
name = args['name'..i],
desc = args['desc'..i],
bronzeReward = args['bronzeReward'..i],
bronzeReq = args['bronzeReq'..i],
silverReward = args['silverReward'..i],
silverReq = args['silverReq'..i],
goldReward = args['goldReward'..i],
goldReq = args['goldReq'..i],
}
html:wikitext(renderMasteryCard(mastery))
end
return tostring(html)
end
return p