Модуль:AlchemyRecipe: различия между версиями

Материал из Space Stories Wiki
Нет описания правки
(Полностью удалено содержимое страницы)
Метки: очистка ручная отмена
 
(не показаны 22 промежуточные версии этого же участника)
Строка 1: Строка 1:
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

Текущая версия от 11:41, 22 июня 2025

Для документации этого модуля может быть создана страница Модуль:AlchemyRecipe/doc