Module:RequirementBox: Difference between revisions

no edit summary
(Undo revision 3311 by Admin Jeremy (talk))
Tag: Undo
No edit summary
Line 4: Line 4:
     if list == "" then return "" end
     if list == "" then return "" end


     -- Split list into individual <li> blocks
    local out = ""
    local items = {}
 
     for li in list:gmatch("<li>(.-)</li>") do
     -- Split by lines
         table.insert(items, li)
     for line in list:gmatch("[^\r\n]+") do
    end
         line = mw.text.trim(line)


    local out = ""
        -- Only process bullet lines
        if line:sub(1, 1) == "*" then
            local item = mw.text.trim(line:sub(2))


    for _, item in ipairs(items) do
            if item:find("||OR||", 1, true) then
        if item:find("||OR||") then
                -- OR requirement
            -- OR requirement
                local parts = mw.text.split(item, "||OR||", true)
            local parts = mw.text.split(item, "%s*||OR||%s*")
                out = out .. '<li class="vp-requirement-or">'
            out = out .. '<li class="vp-requirement-or">'
                for i, part in ipairs(parts) do
            for i, part in ipairs(parts) do
                    out = out .. '<div class="vp-requirement-or-option">' ..
                out = out .. '<div class="vp-requirement-or-option">' .. part .. '</div>'
                        mw.text.trim(part) .. '</div>'
                if i < #parts then
                    if i < #parts then
                    out = out .. '<div class="vp-requirement-or-divider">OR</div>'
                        out = out .. '<div class="vp-requirement-or-divider">OR</div>'
                    end
                 end
                 end
                out = out .. '</li>'
            else
                -- Normal requirement
                out = out .. '<li>' .. item .. '</li>'
             end
             end
            out = out .. '</li>'
        else
            -- Normal requirement
            out = out .. '<li>' .. item .. '</li>'
         end
         end
     end
     end
    if out == "" then return "" end


     return string.format([[
     return string.format([[