Modul:Unsubst: Unterschied zwischen den Versionen
K
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) |
K (fix whitespace removal; remove empty parameters after handling aliases and prevent removal of two or fewer consecutive empty parameters in a sequence) |
||
| Zeile 79: | Zeile 79: | ||
-- Trim parameters, if not specified otherwise | -- Trim parameters, if not specified otherwise | ||
if not string.find( ','..(frame.args['$flags'] or '')..',', ',%s*keep%-whitespace%s*,' ) then | 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 '' | for k, v in pairs( args ) do args[k] = mw.ustring.match(v, '^%s*(.*)%s*$') or '' end | ||
end | end | ||
| Zeile 103: | Zeile 96: | ||
end | end | ||
args[k] = nil | 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 not (type(k) == 'number' and k < tmp) then args[k] = nil end | |||
end | |||
end | |||
end | end | ||