9,921
editsno edit summary
No edit summary |
No edit summary |
||
Line 138: | Line 138: | ||
end | end | ||
-- Applies the | -- 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 | ||
return frame:expandTemplate{ | |||
title = useTemplateOnElements, | |||
args = { str } | |||
} | |||
elseif useTwoArgTemplateOnElements then | elseif useTwoArgTemplateOnElements then | ||
return frame:expandTemplate{ | |||
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) |