Module:ListComponents: Difference between revisions
Appearance
No edit summary |
m Protected "Module:ListComponents" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) |
(No difference)
| |
Revision as of 18:21, 23 April 2025
Documentation for this module may be created at Module:ListComponents/doc
local p = {}
function p.fromDelimited(frame)
local raw = frame.args[1] or ""
local delimiter = frame.args.delimiter or ","
local combinations = mw.text.split(raw, delimiter)
local output = {}
table.insert(output, '\n<ul style="margin-left: 1em;">')
for _, combo in ipairs(combinations) do
combo = mw.text.trim(combo)
if combo ~= "" then
local parts = mw.text.split(combo, "+")
local linked_parts = {}
for _, part in ipairs(parts) do
local trimmed = mw.text.trim(part)
local subparts = mw.text.split(trimmed, "::")
local target = mw.text.trim(subparts[1])
local label = subparts[2] and mw.text.trim(subparts[2]) or target
table.insert(linked_parts, string.format("[[%s|%s]]", target, label))
end
table.insert(output, string.format("<li>%s</li>", table.concat(linked_parts, " + ")))
end
end
table.insert(output, '</ul>\n')
return table.concat(output, "\n")
end
return p