Module:RequirementBox: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 3: Line 3:
local function renderCategory(title, list)
local function renderCategory(title, list)
     if list == "" then return "" end
     if list == "" then return "" end
    -- Split list into individual <li> blocks
    local items = {}
    for li in list:gmatch("<li>(.-)</li>") do
        table.insert(items, li)
    end
    local out = ""
    for _, item in ipairs(items) do
        if item:find("||OR||") then
            -- OR requirement
            local parts = mw.text.split(item, "%s*||OR||%s*")
            out = out .. '<li class="vp-requirement-or">'
            for i, part in ipairs(parts) do
                out = out .. '<div class="vp-requirement-or-option">' .. part .. '</div>'
                if i < #parts then
                    out = out .. '<div class="vp-requirement-or-divider">OR</div>'
                end
            end
            out = out .. '</li>'
        else
            -- Normal requirement
            out = out .. '<li>' .. item .. '</li>'
        end
    end
     return string.format([[
     return string.format([[
<div class="vp-requirements-category">
<div class="vp-requirements-category">
Line 9: Line 36:
%s
%s
   </ul>
   </ul>
</div>]], title, list)
</div>]], title, out)
end
end


function p.render(frame)
function p.render(frame)