Notice: We are aware that the wiki's extensions which enable video/audio embedding and other niceties are still broken. This will be fixed eventually.
If you plan to make a YouTube video or other content using bootlegs downloaded from our site, although we can't and won't force you to do anything, we greatly appreciate attribution for the large amounts of time and effort we spend finding these bootlegs. Thank you!

Module:Tmpl

From CrustyWindows, the largest archive of bootleg operating systems
Jump to navigation Jump to search

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