Ovaj modul omogućava lahko procesiranje argumenata koji prolaze kroz #invoke. Ovo je meta-modul, što znači da je napravljen da se koristi u drugim modulima i da se nebi trebao koristiti preko #invoke direktno. Funkcije ovog modula su u među ostalom:

  • Skraćivanje argumenata i uklanjanje praznih argumenata.
  • Argumenti se mogu poslati kroz trenutni okvir (= frame) i preko okvira roditelja istovremeno. (više detalja ispod)
  • Argumenti se mogu poslati direktno preko druge Lua module ili preko konzole za pronalaženje grešaka u kodu.
  • Argumenti se mogu učitati po potrebi, što pomaže da se izbjegnu (neki) problemi sa <ref>...</ref> oznakama.
  • Većina funkcija se može podesiti.

Osnovno korištenje

uredi

Prvo je potrebno učitati modul. Koristi se jedna funkcija sa imenom getArgs.

local getArgs = require('Module:Arguments').getArgs

U najjednostavnijem scenariju getArgs se može koristiti u main funkciji. Promjenljiva args je tabela koja sadrži argumente od #invoke-a.

local getArgs = require('Module:Arguments').getArgs
local p = {}

function p.main(frame)
	local args = getArgs(frame)
	-- Glavni kod modula ide ovdje.
end

return p

Međutim, preporučeno je koristiti funkciju samo za procesiranje argumenata kroz #invoke. Ovo znači da ako neko pozove tvoj modul preko druge Lua module, onda nije potrebno imati okvirni objekat, poboljšavajući brzinu izvršenja.

local getArgs = require('Module:Arguments').getArgs
local p = {}

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	-- Glavni kod modula ide ovdje.
end

return p

Ako želiš da više funkcija koriste argumente, i ako je potrebno da su oni dostpuni preko #invoke-a, onda se može koristiti omotna funkcija.

local getArgs = require('Module:Arguments').getArgs

local function makeInvokeFunc(funcName)
	return function (frame)
		local args = getArgs(frame)
		return p[funcName](args)
	end
end

local p = {}

p.func1 = makeInvokeFunc('_func1')

function p._func1(args)
	-- Kod za prvu funkciju ide ovdje.
end

p.func2 = makeInvokeFunc('_func2')

function p._func2(args)
	-- Kod za drugu funkciju ide ovdje.
end

return p

Opcije

uredi

Dostupne su sljdeće opcije.

local args = getArgs(frame, {
	trim = false,
	removeBlanks = false,
	valueFunc = function (key, value)
		-- Kod za procesiranje jednog argumenta
	end,
	frameOnly = true,
	parentOnly = true,
	parentFirst = true,
	readOnly = true,
	noOverwrite = true
})

Skraćivanje i uklanjanje praznih argumenata

uredi

Ovo je stranica dokumentacije za Modul:Arguments