Module:ParseList: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 138: Line 138:
end
end


-- Applies the singular, plural, lowercase, and linkification transform
-- Applies the various per-element transforms.  Frame is needed for template
local function processElement(str)
-- expansion; it may be nil if template transforms won't be applied.
local function processElement(str, frame)
local original = str
local original = str
if makeElementsPlural then
if makeElementsPlural then
Line 152: Line 153:
return "[[" .. original .. "|" .. str .. "]]"
return "[[" .. original .. "|" .. str .. "]]"
elseif useTemplateOnElements then
elseif useTemplateOnElements then
local t = useTemplateOnElements
return frame:expandTemplate{
return "{{" .. t .. "|" .. str .. "}}"
title = useTemplateOnElements,
args = { str }
}
elseif useTwoArgTemplateOnElements then
elseif useTwoArgTemplateOnElements then
local t = useTwoArgTemplateOnElements
return frame:expandTemplate{
return "{{" .. t .. "|" .. original .. "|" .. str .. "}}"
title = useTwoArgTemplateOnElements,
args = { original, str }
}
end
end
return str
return str
Line 208: Line 213:
function p.main(frame)
function p.main(frame)
local args = getArgs(frame, { frameOnly = true })
local args = getArgs(frame, { frameOnly = true })
return p._main(args)
return p._main(args, frame)
end
end


function p._main(args)
-- Frame is needed for template expansion; may be nil if the useTemplate and
-- useTemplate2 args are nil.
function p._main(args, frame)
listDelimiters = args['delimiter'] or ","
listDelimiters = args['delimiter'] or ","
makeElementsLinks = args['makeLinks']
makeElementsLinks = args['makeLinks']
Line 227: Line 234:
local strings = splitListString(listString)
local strings = splitListString(listString)
for i, str in ipairs(strings) do
for i, str in ipairs(strings) do
table.insert(elements, processElement(str))
table.insert(elements, processElement(str, frame))
end
end
return converter(elements)
return converter(elements)

Navigation menu