Module:Tmpl: Difference between revisions

Jump to navigation Jump to search
m
1 revision imported
m (1 revision imported)
m (1 revision imported)
Line 1: Line 1:
-- This is a helper module for Template:tmpl
-- This is a helper module for {{tmpl}}
require('Module:No globals')
 
-- The trailing `[^0-9]?` ensures that `$10` doesn't potentially change
-- from being treated as `${1}0` to being treated as `${10}`
-- if the number of supported parameters is ever expanded:
local PATTERN = "%$([1-9])[^0-9]?"
 
local this = {}
local this = {}


function this.renderTmpl(frame)
function this.renderTmpl(frame)
    local args = frame.args
local args = frame.args
    local pargs = (frame:getParent() or {}).args
local pargs = (frame:getParent() or {}).args
    local result = pargs[0] or ''
local input = pargs[0] or ''
    for k, v in pairs(pargs) do
local result = {}
        local n = tonumber(k) or -1
 
        if (n >= 1 and n <= 9) then
local prevPos = 1
            result = mw.ustring.gsub( result, '$' .. n, mw.text.trim(v) )
do
        end
local startPos, _, k
    end
while true do
    return result
startPos, _, k = string.find(input, PATTERN, prevPos)
if (not startPos) then break end
table.insert(result, string.sub(input, prevPos, startPos - 1))
 
local n = tonumber(k)
local r = pargs[n]
if (r) then
table.insert(result, r)
else
table.insert(result, '$' .. n)
end
 
prevPos = startPos + #k + 1
end
end
 
table.insert(result, string.sub(input, prevPos))
return table.concat(result)
end
end


return this
return this
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu