Module:parameters/track

Hello, you have come here looking for the meaning of the word Module:parameters/track. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:parameters/track, but we will also tell you about its etymology, its characteristics and you will know how to say Module:parameters/track in singular and plural. Everything you need to know about the word Module:parameters/track you have here. The definition of the word Module:parameters/track will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:parameters/track, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.


local debug_track_module = "Module:debug/track"
local string_gline_module = "Module:string/gline"

local match = string.match
local new_title = mw.title.new
local require = require
local traceback = debug.traceback

local function debug_track(...)
	debug_track = require(debug_track_module)
	return debug_track(...)
end

local function gline(...)
	gline = require(string_gline_module)
	return gline(...)
end

local params_title
local function get_params_title()
	params_title, get_params_title = new_title("parameters", 828), nil
	return params_title
end

return function(page, param_name)
	debug_track("parameters/" .. page)
	if param_name ~= nil then
		debug_track("parameters/" .. page .. "/" .. param_name .. "=")
	end
	-- Check through the traceback to get the calling module and function.
	local mod_title
	for line in gline((traceback())) do
		local mod, func = match(line, "^\t*(.-):%d+: in function (.*)$")
		-- Must match a conventional module, not a tail call, C function, in-
		-- built Scribunto file etc. If `mod` matches `mod_title`, it means the
		-- module has been seen before, so there is nothing else to check.
		if mod and not (mod_title and mod == mod_title.prefixedText) then
			mod_title = new_title(mod)
			if mod_title and mod_title.namespace == 828 and not (
				mod_title == (params_title or get_params_title()) or
				mod_title:isSubpageOf(params_title)
			) then
				mod = mod_title.text
				debug_track("parameters/" .. page .. "/" .. mod)
				-- traceback() encloses function names in single quotes.
				local funcname = match(func, "^'(.*)'$")
				if funcname then
					debug_track("parameters/" .. page .. "/" .. mod .. "/" .. funcname)
					return
				end
				-- WHen a function is unnamed, line numbers are given after the
				-- module name in angle brackets, directly after a separating
				-- colon.
				local funcline = match(func, "^<.-:(%d+)>$")
				if funcline then
					debug_track("parameters/" .. page .. "/" .. mod .. ":" .. funcline)
				end
				return
			end
		end
	end
end