Anonymous
×
Create a new article
Write your page title here:
We currently have 15 articles on TwistedFates Database. Type your article name above or click on one of the titles below and start writing!



    TwistedFates Database
    15Articles

    Documentation for this module may be created at Module:Tmpl/doc

    -- This is a helper module for {{tmpl}}
    require('strict')
    
    -- 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 = {}
    
    function this.renderTmpl(frame)
    	local args = frame.args
    	local pargs = (frame:getParent() or {}).args
    	local input = pargs[0] or ''
    	local result = {}
    
    	local prevPos = 1
    	do
    		local startPos, _, k
    		while true do
    			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
    
    return this