Модуль:chemcard

Вернуться

Строка 63: Строка 63:
     return steps
     return steps
end
end
-- ====================== ИСПРАВЛЕННЫЙ БЛОК ======================
local FILE_PATTERN = "(%[%[File:[^]]+%]%])"  -- правильный Lua-паттерн


local function buildRecipeStepHtml(rec)
local function buildRecipeStepHtml(rec)
Строка 77: Строка 80:
     inner:node(inputsDiv)
     inner:node(inputsDiv)


     -- ACTION (спрайт строго сверху + текст)
     -- ACTION (спрайт строго сверху)
     if rec.action and rec.action ~= "" then
     if rec.action and rec.action ~= "" then
         local actionDiv = inner:tag("div"):addClass("recipe-action")
         local actionDiv = inner:tag("div"):addClass("recipe-action")
Строка 85: Строка 88:
         local actionText = rec.action
         local actionText = rec.action


         -- Если пользователь указал свой спрайт в строке действия
         -- Ищем кастомный спрайт
         local customSprite = mw.ustring.match(actionText, "(%[%[File:[^%]]+%]%]%)")
         local customSprite = mw.ustring.match(actionText, FILE_PATTERN)
         if customSprite then
         if customSprite then
             sprite = customSprite
             sprite = customSprite
             actionText = mw.text.trim(mw.ustring.gsub(actionText, "%[%[File:[^%]]+%]%]", ""))
             actionText = mw.text.trim(mw.ustring.gsub(actionText, FILE_PATTERN, ""))
         end
         end


Строка 106: Строка 109:
     return inner
     return inner
end
end
-- ============================================================


local function buildEffectsHtml(effects)
local function buildEffectsHtml(effects)
Строка 136: Строка 140:
     local desc = args.desc or ""
     local desc = args.desc or ""


    -- Собираем ВСЕ варианты рецептов (recipe, recipe2, recipe3…)
     local variants = {}
     local variants = {}
     local i = 1
     local i = 1
Строка 166: Строка 169:


         for vidx, variant in ipairs(variants) do
         for vidx, variant in ipairs(variants) do
            -- Если несколько вариантов — показываем «Вариант X»
             if #variants > 1 then
             if #variants > 1 then
                 local varHeader = stepsContainer:tag("div"):addClass("recipe-variant-header")
                 local varHeader = stepsContainer:tag("div"):addClass("recipe-variant-header")