Dantes (обсуждение | вклад) Нет описания правки |
Dantes (обсуждение | вклад) Нет описания правки |
||
| Строка 35: | Строка 35: | ||
-- Название | -- Название | ||
card:tag('h3') | card:tag('h3'):wikitext(name) | ||
-- Ингредиенты | |||
local ingr_div = card:tag('div'):addClass('alchemy-ingredients') | |||
for _, ingr in ipairs(ingredients) do | for _, ingr in ipairs(ingredients) do | ||
ingr_div:tag('div') | ingr_div:tag('div'):wikitext(ingr) | ||
end | end | ||
| Строка 53: | Строка 47: | ||
:addClass('alchemy-mix') | :addClass('alchemy-mix') | ||
:wikitext('Смешайте') | :wikitext('Смешайте') | ||
-- Результат | -- Результат | ||
| Строка 59: | Строка 52: | ||
:addClass('alchemy-result') | :addClass('alchemy-result') | ||
:wikitext(result) | :wikitext(result) | ||
-- Эффекты — теперь просто блоки div, без списков | |||
local eff_div = card:tag('div'):addClass('alchemy-effects') | |||
for _, eff in ipairs(effects) do | for _, eff in ipairs(effects) do | ||
eff_div:tag('div') | eff_div:tag('div') | ||
:addClass('alchemy-effect-line') | |||
:wikitext(eff) | :wikitext(eff) | ||
end | end | ||
| Строка 76: | Строка 66: | ||
:addClass('alchemy-effect-desc') | :addClass('alchemy-effect-desc') | ||
:wikitext(effects_desc) | :wikitext(effects_desc) | ||
end | end | ||
Версия от 18:37, 16 мая 2025
Для документации этого модуля может быть создана страница Модуль:AlchemyRecipesGrid/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.grid(frame)
local args = frame:getParent().args or {}
local count = tonumber(args.count) or 0
local html = mw.html.create('div')
:addClass('alchemy-grid-container')
for i = 1, count do
local name = args['Название' .. i] or ''
local ingredients_raw = args['Ингредиенты' .. i] or ''
local result = args['Результат' .. i] or ''
local effects_raw = args['Эффекты' .. i] or ''
local effects_desc = args['ОписаниеЭффектов' .. i] or ''
local border_color = args['ЦветРамки' .. i] or '#338833'
local bg_color = args['ЦветФона' .. i] 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)
-- Эффекты — теперь просто блоки div, без списков
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
html:node(card)
end
return tostring(html)
end
return p