Module:Unsubst: Difference between revisions

242 bytes added ,  6 years ago
m
fix whitespace removal; remove empty parameters after handling aliases and prevent removal of two or fewer consecutive empty parameters in a sequence
(add parameter list, aliases, flags; use Module:Template invocation)
m (fix whitespace removal; remove empty parameters after handling aliases and prevent removal of two or fewer consecutive empty parameters in a sequence)
Line 79:
-- Trim parameters, if not specified otherwise
if not string.find( ','..(frame.args['$flags'] or '')..',', ',%s*keep%-whitespace%s*,' ) then
for k, v in pairs( args ) do args[k] = mw.ustring.match(v, '^%s*(.*)%s*$') or '' end
end
-- Remove empty parameters, if specified
if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*remove%-empty%s*,' ) then
for k, v in pairs( args ) do
if v == '' then args[k] = nil end
end
end
 
Line 103 ⟶ 96:
end
args[k] = nil
end
 
-- Remove empty parameters, if specified
if string.find( ','..(frame.args['$flags'] or '')..',', ',%s*remove%-empty%s*,' ) then
local tmp = 0
for k, v in ipairs( args ) do
if v ~= '' or ( args[k+1] and args[k+1] ~= '' ) or ( args[k+2] and args[k+2] ~= '' ) then
tmp = k
else
break
end
end
for k, v in pairs( args ) do
if v == '' then
if vnot (type(k) == 'number' and k < tmp) then args[k] = nil end
end
end
end
 
Anonymous user