Module:RequirementBox: Difference between revisions
Admin Jeremy (talk | contribs) No edit summary |
Admin Jeremy (talk | contribs) No edit summary Tag: Reverted |
||
| Line 1: | Line 1: | ||
local function renderCategory(title, list) | local function renderCategory(title, list) | ||
if list == "" then return "" end | if list == "" then return "" end | ||
-- Split | local out = "" | ||
for | -- Split by lines | ||
for line in list:gmatch("[^\r\n]+") do | |||
line = mw.text.trim(line) | |||
-- Only process bullet lines | |||
if line:sub(1, 1) == "*" then | |||
local item = mw.text.trim(line:sub(2)) | |||
if item:find("||OR||", 1, true) then | |||
-- OR requirement | |||
local parts = mw.text.split(item, "||OR||", true) | |||
out = out .. '<li class="vp-requirement-or">' | |||
for i, part in ipairs(parts) do | |||
out = out .. '<div class="vp-requirement-or-option">' .. | |||
mw.text.trim(part) .. '</div>' | |||
if i < #parts then | |||
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 | ||
end | end | ||
end | end | ||
if out == "" then return "" end | |||
return string.format([[ | return string.format([[ | ||
| Line 38: | Line 41: | ||
</div>]], title, out) | </div>]], title, out) | ||
end | end | ||
Revision as of 17:18, 5 January 2026
Documentation for this module may be created at Module:RequirementBox/doc
local function renderCategory(title, list)
if list == "" then return "" end
local out = ""
-- Split by lines
for line in list:gmatch("[^\r\n]+") do
line = mw.text.trim(line)
-- Only process bullet lines
if line:sub(1, 1) == "*" then
local item = mw.text.trim(line:sub(2))
if item:find("||OR||", 1, true) then
-- OR requirement
local parts = mw.text.split(item, "||OR||", true)
out = out .. '<li class="vp-requirement-or">'
for i, part in ipairs(parts) do
out = out .. '<div class="vp-requirement-or-option">' ..
mw.text.trim(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
end
if out == "" then return "" end
return string.format([[
<div class="vp-requirements-category">
<div class="requirements-header">%s</div>
<ul class="vp-requirements-list">
%s
</ul>
</div>]], title, out)
end