Для документации этого модуля может быть создана страница Модуль:AlchemyRecipe/doc
local p = {}
local function split(str, sep)
local result = {}
for part in mw.text.gsplit(str, sep) do
table.insert(result, mw.text.trim(part))
end
return result
end
function p.card(frame)
local args = frame:getParent().args or {}
local name = args['Название'] or ''
local ingredients_raw = args['Ингредиенты'] or ''
local result = args['Результат'] or ''
local effects_raw = args['Эффекты'] or ''
local effects_desc = args['ОписаниеЭффектов'] or ''
local border_color = args['ЦветРамки'] or '#338833'
local bg_color = args['ЦветФона'] or '#1a2a1a'
local ingredients = split(ingredients_raw, ';')
local effects = split(effects_raw, ';')
local card = mw.html.create('div')
:addClass('alchemy-card')
:css('border-color', border_color)
:css('background-color', bg_color)
card:tag('h3'):wikitext(name)
local ingr_div = card:tag('div'):addClass('alchemy-ingredients')
for _, ingr in ipairs(ingredients) do
ingr_div:tag('div'):wikitext(ingr)
end
card:tag('div'):addClass('alchemy-mix'):wikitext('Смешайте')
card:tag('div'):addClass('alchemy-result'):wikitext(result)
local eff_div = card:tag('div'):addClass('alchemy-effects')
for _, eff in ipairs(effects) do
eff_div:tag('div'):addClass('alchemy-effect-line'):wikitext(eff)
end
if effects_desc and effects_desc ~= '' then
eff_div:tag('div'):addClass('alchemy-effect-desc'):wikitext(effects_desc)
end
return tostring(card)
end
return p