Module:ApplyPattern
Jump to navigation
Jump to search
Custom module to apply either some wiki markup or a template to each item in a comma delimited list. Look at Template:Class for examples.
local p = {}
function split(instr,sep)
local sep, fields = sep or ":", {}
local pattern = string.format("([^%s]+)", sep)
string.gsub(instr, pattern, function(c) fields[#fields+1] = c end)
return fields
end
function p.apply(frame)
local list = frame.args[1]
local pattern = frame.args[2]
local result = ""
local sep = ','
for key,entry in pairs(split(list,sep)) do
result = result .. string.gsub(pattern, '%%pattern%%',entry)
end
return result
end
return p