Module:Sort: Difference between revisions
From Teriock
More actions
// via Wikitext Extension for VSCode |
// via Wikitext Extension for VSCode |
||
| Line 9: | Line 9: | ||
pre = "{{L|" .. frame.args['wrap'] .. "|" | pre = "{{L|" .. frame.args['wrap'] .. "|" | ||
post = "}}" | post = "}}" | ||
end | |||
if frame.args['cat'] and frame.args['name'] and frame.args['ns'] then | |||
post = post .. "{{Cat|name=" .. frame.args['name'] .. "|" .. frame.args['ns'] .. "|" .. frame.args['cat'] .. "}}" | |||
end | end | ||
Revision as of 00:53, 19 January 2025
Documentation for this module may be created at Module:Sort/doc
local p = {}
function p.parse(frame)
local input = frame.args[1] or ""
local pre = ""
local post = ""
if frame.args['wrap'] then
pre = "{{L|" .. frame.args['wrap'] .. "|"
post = "}}"
end
if frame.args['cat'] and frame.args['name'] and frame.args['ns'] then
post = post .. "{{Cat|name=" .. frame.args['name'] .. "|" .. frame.args['ns'] .. "|" .. frame.args['cat'] .. "}}"
end
local items = {}
for item in string.gmatch(input, "([^,]+)") do
local trimmed_item = item:match("^%s*(.-)%s*$") -- Trim whitespace
table.insert(items, pre .. trimmed_item .. post)
end
table.sort(items)
return frame:preprocess(table.concat(items, ", "))
end
return p