<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AArguments%2Fdoc</id>
	<title>Módulo:Arguments/doc - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tokusatsus.com/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3AArguments%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Arguments/doc&amp;action=history"/>
	<updated>2026-07-05T07:59:33Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Arguments/doc&amp;diff=2412&amp;oldid=prev</id>
		<title>Tavoraadmin: Importando predefinição/módulo da Wikipédia em português para manter layout</title>
		<link rel="alternate" type="text/html" href="https://wiki.tokusatsus.com/index.php?title=M%C3%B3dulo:Arguments/doc&amp;diff=2412&amp;oldid=prev"/>
		<updated>2026-07-05T04:40:12Z</updated>

		<summary type="html">&lt;p&gt;Importando predefinição/módulo da Wikipédia em português para manter layout&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;section begin=header /&amp;gt;&lt;br /&gt;
{{#ifeq:{{#invoke:String|find|{{FULLPAGENAME}}|Testes}}|0|&amp;lt;includeonly&amp;gt;{{Module rating|p}}{{alto risco|2020985}}&amp;lt;/includeonly&amp;gt;}}&amp;lt;!-- if pagename does not contain sandbox --&amp;gt;&lt;br /&gt;
&amp;lt;section end=header /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Este módulo facilita o processamento dos argumentos passados por um comando &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;. Ele é um meta-módulo, destinado ao uso por outros módulos, e não deve ser chamado diretamente a partir de &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;&amp;lt;!----&amp;gt;. Suas funcionalidades incluem:&lt;br /&gt;
* Fácil remoção dos argumentos em branco e dos espaços em branco em torno dos argumentos.&lt;br /&gt;
* Os argumentos podem ser passados tanto pelo &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual quanto pelo &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental ao mesmo tempo. (Mais detalhes abaixo.)&lt;br /&gt;
* Os argumentos podem ser passados diretamente a partir de outro módulo Lua ou a partir do console de depuração.&lt;br /&gt;
* A maioria das funcionalidades pode ser personalizada.&lt;br /&gt;
&lt;br /&gt;
==Uso básico==&lt;br /&gt;
Primeiro, você precisa carregar o módulo. Ele contém uma função, chamada &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
No cenário mais básico, você pode utilizar s &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; dentro de sua função principal, &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;. A variável &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; é uma tabela contendo os argumentos a partir de &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;. (Ver abaixo para detalhes.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	-- O código principal do módulo vai aqui.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Prática recomendada===&lt;br /&gt;
No entanto, a prática recomendada é usar uma função separada como ponto de entrada a partir de &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt; apenas para processar os argumentos. Isso permite que outros módulos Lua chamem sua lógica principal diretamente, melhorando o desempenho ao evitar a sobrecarga de interação com o objeto &amp;lt;code&amp;gt;frame&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	-- O código principal do módulo vai aqui.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A forma como isso é chamado a partir de uma predefinição é &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Example|main}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (opcionalmente com alguns parâmetros como &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Example|main|arg1=value1|arg2=value2}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;), e a forma como isso é chamado a partir de um módulo é &amp;lt;syntaxhighlight lang=lua inline&amp;gt;require(&amp;#039;Module:Example&amp;#039;)._main({arg1 = &amp;#039;value1&amp;#039;, arg2 = value2, &amp;#039;spaced arg3&amp;#039; = &amp;#039;value3&amp;#039;})&amp;lt;/syntaxhighlight&amp;gt;. O que este segundo faz é construir uma tabela com os argumentos nela, e então passa essa tabela para a função p._main(args), que a utiliza nativamente.&lt;br /&gt;
&lt;br /&gt;
===Múltiplas funções===&lt;br /&gt;
Se você quer que várias funções utilizem os argumentos, e você também quer que eles sejam acessíveis a partir de &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;, você pode utilizar uma função &amp;#039;&amp;#039;wrapper&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = getArgs(frame)&lt;br /&gt;
		return p[funcName](args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
p.func1 = makeInvokeFunc(&amp;#039;_func1&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function p._func1(args)&lt;br /&gt;
	-- O código para a primeira função vai aqui.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.func2 = makeInvokeFunc(&amp;#039;_func2&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function p._func2(args)&lt;br /&gt;
	-- O código para a segunda função vai aqui.&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Opções==&lt;br /&gt;
Estão disponíveis as seguintes opções. Elas são explicadas nas seções abaixo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	trim = false,&lt;br /&gt;
	removeBlanks = false,&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		-- Código para processar um argumento&lt;br /&gt;
	end,&lt;br /&gt;
    &lt;br /&gt;
	frameOnly = true,&lt;br /&gt;
	parentOnly = true,&lt;br /&gt;
	parentFirst = true,&lt;br /&gt;
    &lt;br /&gt;
	wrappers = {&lt;br /&gt;
		&amp;#039;Predefinição:Uma predefinição wrapper&amp;#039;,&lt;br /&gt;
		&amp;#039;Predefinição:Outra predefinição wrapper&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
    &lt;br /&gt;
	readOnly = true,&lt;br /&gt;
	noOverwrite = true&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Remoção de espaços em branco===&lt;br /&gt;
O MediaWiki corta os espaços em branco dos argumentos nomeados provenientes a partir de #invoke ou uma chamada de predefinição, mas preserva os espaços em branco dos argumentos posicionais. Por padrão, este módulo ajuda a cortar os espaços em branco dos argumentos posicionais também. Para preservar os espaços em branco nos argumentos posicionais, defina a opção &amp;lt;code&amp;gt;trim&amp;lt;/code&amp;gt; como &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	trim = false,&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Remoção de argumentos em branco===&lt;br /&gt;
&amp;quot;Argumentos em branco&amp;quot; são os argumentos a partir de #invoke ou predefinição que são sequências (&amp;#039;&amp;#039;strings&amp;#039;&amp;#039;) em branco ou consistem apenas de espaços em branco. Por padrão, este módulo remove todos os argumentos em branco. Para preservar os argumentos em branco, defina a opção &amp;lt;code&amp;gt;removeBlanks&amp;lt;/code&amp;gt; como &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	removeBlanks = false&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isso pode ser necessário para a operação de algumas predefinições.&lt;br /&gt;
&lt;br /&gt;
Nota: Ao converter predefinições MediaWiki para Lua, lembre-se de que, em Lua, as sequências (&amp;#039;&amp;#039;strings&amp;#039;&amp;#039;) em branco e sequências (&amp;#039;&amp;#039;strings&amp;#039;&amp;#039;) compostas apenas por espaços em branco são consideradas verdadeiras. Se você não prestar atenção a esses argumentos em branco ao escrever seus módulos Lua, poderá tratar algo como verdadeiro, mas que, na verdade, deveria ser tratado como falso.&lt;br /&gt;
&lt;br /&gt;
Quando a opção &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; é fornecida, a função &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; será responsável por lidar com os argumentos em branco, e a opção &amp;lt;code&amp;gt;removeBlanks&amp;lt;/code&amp;gt; não terá efeito.&lt;br /&gt;
&lt;br /&gt;
===Formatação personalizada dos argumentos===&lt;br /&gt;
Algumas vezes você quer remover alguns argumentos em branco mas não outros, ou talvez converter os valores de todos os argumentos posicionais para minúsculas. Para fazer coisas deste tipo você pode usar a opção &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt;. Este parâmetro aceita como entrada uma função que recebe dois parâmetros, &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;, e retorna um único valor. Este valor é o que será obtido ao acessar o campo &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; da tabela &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Exemplo 1: esta função preserva os espaços em branco do primeiro argumento posicional, mas remove-os dos demais e também remove os demais argumentos em branco.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if key == 1 then&lt;br /&gt;
			return value&lt;br /&gt;
		elseif value then&lt;br /&gt;
			value = mw.text.trim(value)&lt;br /&gt;
			if value ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				return value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemplo 2: esta função remove parâmetros em branco e converte todos os argumentos para minúsculas, mas não remove espaços dos argumentos posicionais.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if not value then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
		value = mw.ustring.lower(value)&lt;br /&gt;
		if mw.ustring.find(value, &amp;#039;%S&amp;#039;) then&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nota: a função acima falhará se receber como entrada algo que não seja do tipo &amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt;. Isso pode ocorrer se utilizar a função &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; na função principal (&amp;#039;&amp;#039;main&amp;#039;&amp;#039;) do seu módulo, e aquela função for chamada por outro módulo Lua. Neste caso, você precisará conferir o tipo de sua entrada. Esse problema não ocorre se utilizar uma função especifica para lidar com os argumentos a partir de #invoke (isto é, se houver uma função &amp;lt;code&amp;gt;p.main&amp;lt;/code&amp;gt; e uma &amp;lt;code&amp;gt;p._main&amp;lt;/code&amp;gt;, ou algo parecido).&lt;br /&gt;
&lt;br /&gt;
{{cot|Exemplos 1 e 2 com checagem de tipo}}&lt;br /&gt;
Exemplo 1:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if key == 1 then&lt;br /&gt;
			return value&lt;br /&gt;
		elseif type(value) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			value = mw.text.trim(value)&lt;br /&gt;
			if value ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exemplo 2:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	valueFunc = function (key, value)&lt;br /&gt;
		if type(value) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			value = mw.ustring.lower(value)&lt;br /&gt;
			if mw.ustring.find(value, &amp;#039;%S&amp;#039;) then&lt;br /&gt;
				return value&lt;br /&gt;
			else&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{cob}}&lt;br /&gt;
&lt;br /&gt;
Além disso, por favor note que a função &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; é chamada praticamente a cada vez que um argumento é requisitado a partir da tabela &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt;, então se você se preocupa com o desempenho você deve se certificar de não fazer nada ineficiente com o seu código.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;Frames&amp;#039;&amp;#039; e &amp;#039;&amp;#039;frames&amp;#039;&amp;#039; parentais===&lt;br /&gt;
Os argumentos da tabela &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; podem ser passados simultaneamente a paetir do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual ou de seu &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental. Para entender o que isso significa, é mais fácil dar um exemplo. Digamos que temos um módulo chamado &amp;lt;code&amp;gt;Módulo:ExampleArgs&amp;lt;/code&amp;gt;. Este módulo imprime os dois primeiros parâmetros posicionais que ele recebe.&lt;br /&gt;
&lt;br /&gt;
{{cot|Código de Módulo:ExampleArgs}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local getArgs = require(&amp;#039;Módulo:Arguments&amp;#039;).getArgs&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local first = args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local second = args[2] or &amp;#039;&amp;#039;&lt;br /&gt;
	return first .. &amp;#039; &amp;#039; .. second&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
{{cob}}&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;code&amp;gt;Predefinição:ExampleArgs&amp;lt;/code&amp;gt; contém o código &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:ExampleArgs|main|&amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Agora, se chamarmos a &amp;lt;code&amp;gt;Predefinição:ExampleArgs&amp;lt;/code&amp;gt;, acontece o seguinte:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;pre&amp;gt;{{#invoke:ExampleArgs|main|&amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;}}&lt;br /&gt;
	&lt;br /&gt;
(chama #invoke diretamente sem predefinição)&amp;lt;/pre&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
(chama #invoke diretamente sem predefinição)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039; secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Há três opções que você pode definir para alterar este comportamento: &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt;. Se você definir &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; então só serão aceitos os argumentos passados a partir do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual; se você definir &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; então só serão aceitos os argumentos passados a partir do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental; e se você definir &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; os argumentos serão passados a partir de ambos os &amp;#039;&amp;#039;frames&amp;#039;&amp;#039;, mas os a partir do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental terão prioridade sobre o &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual. Estes são os resultados em termos da &amp;lt;code&amp;gt;Predefinição:ExampleArgs&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;frameOnly&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;parentOnly&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;parentFirst&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Notas:&lt;br /&gt;
# Se você definir tanto a opção &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; quanto a opção &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt;, o módulo não vai obter nenhum argumento de &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;. Isso provavelmente não é o que você quer.&lt;br /&gt;
# Em algumas situações pode não estar disponível um módulo pai, por exemplo, se for passado para getArgs o &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; pai em vez do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual. Neste caso, somente os argumentos do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; serão utilizados (a não ser que parentOnly esteja definido, mas neste caso nenhum argumento será utilizado) e as opções &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; não terão qualquer efeito.&lt;br /&gt;
&lt;br /&gt;
===Wrappers===&lt;br /&gt;
A opção &amp;#039;&amp;#039;wrappers&amp;#039;&amp;#039; é utilizada para especificar um número limitado de &amp;#039;&amp;#039;predefinições wrappers&amp;#039;&amp;#039;, isto é, predefinições cujo único objetivo é chamar um módulo. Se o módulo detecta que está sendo chamado de uma predefinição &amp;#039;&amp;#039;wrapper&amp;#039;&amp;#039;, ele procurará apenas os argumentos do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental; caso contrário ele procurará apenas argumentos no &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; passado para getArgs. Isso permite que os módulos sejam chamados tanto por #invoke quanto através de uma predefinição &amp;#039;&amp;#039;wrapper&amp;#039;&amp;#039; sem a perda de desempenho associada à checagem tanto do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; quanto do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental ao verificar cada argumento.&lt;br /&gt;
&lt;br /&gt;
Por exemplo, o conteúdo da [[:en:Template:Side box]] (excluindo o conteúdo das tags {{tag|noinclude}}) é &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. Não faz sentido procurar argumentos passados diretamente para a declaração #invoke desta predefinição, pois nenhum argumento jamais será especificado lá. Podemos evitar a busca destes argumentos passados para #invoke utilizando a opção &amp;#039;&amp;#039;parentOnly&amp;#039;&amp;#039;, mas se fizermos isso então a #invoke também não funcionará a partir de outras páginas. Se esse fosse o caso, o {{Parâmetro|text|Algum texto}} no código &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main|text=Algum texto}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; seria completamente ignorado, não importando em que página ele tivesse sido usado. Utilizando a opção &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; para especificar &amp;#039;:en:Template:Side box&amp;#039; como um wrapper, podemos fazer com que &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Side box|main|text=Algum texto}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; funcione na maioria das páginas, sem exigir que o módulo tenha que procurar argumentos na própria página da [[:en:Template:Side box]].&lt;br /&gt;
&lt;br /&gt;
Os wrappers podem ser especificados tanto como uma sequências de caracteres (&amp;#039;&amp;#039;string&amp;#039;&amp;#039;) quanto como um arranjo (&amp;#039;&amp;#039;array&amp;#039;&amp;#039;) de sequências de caracteres.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	wrappers = &amp;#039;Predefinição:Predefinição de invólucro&amp;#039;&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local args = getArgs(frame, {&lt;br /&gt;
	wrappers = {&lt;br /&gt;
		&amp;#039;Predefinição:Um invólucro&amp;#039;,&lt;br /&gt;
		&amp;#039;Predefinição:Outro invólucro&amp;#039;,&lt;br /&gt;
		-- Pode-se inserir qualquer número de invólucros aqui.&lt;br /&gt;
	}&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A opção &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; altera os comportamentos padrão das opções &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{{collapse top|title=Comportamento de &amp;#039;&amp;#039;frameOnly&amp;#039;&amp;#039; e de &amp;#039;&amp;#039;parentOnly&amp;#039;&amp;#039; em relação com predefinições &amp;#039;&amp;#039;wrappers&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
; Se &amp;lt;code&amp;gt;Predefinição:ExampleArgs&amp;lt;/code&amp;gt; for especificada como uma predefinição wrapper:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; é verdadeiro ou indefinido&lt;br /&gt;
&lt;br /&gt;
Os argumentos do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; não serão utilizados.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; é falso, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; é falso ou indefinido&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultafo&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039; secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; é falso, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; é verdadeiro&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; Se &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; estiver definido, mas &amp;lt;code&amp;gt;Predefinição:ExampleArgs&amp;lt;/code&amp;gt; não estiver na lista de &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; é verdadeiro ou indefinido&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; é falso, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; é falso ou indefinido&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039; secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; é falso, &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; é verdadeiro&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 50em; max-width: 100%;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 60%;&amp;quot; | Código&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; | Resultado&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;firstInvokeArg&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ExampleArgs|firstTemplateArg|secondTemplateArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| firstTemplateArg secondTemplateArg&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
Notas:&lt;br /&gt;
# O módulo detectará automaticamente se ele está sendo chamado da subpágina /Testes da predefinição wrapper, então não há necessidade de especificar as páginas de testes explicitamente.&lt;br /&gt;
# Se a opção &amp;#039;&amp;#039;wrappers&amp;#039;&amp;#039; estiver definida e não houver um &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental disponível, o módulo sempre obterá os argumentos a partir do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; passado para &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Gravar na tabela de argumentos===&lt;br /&gt;
Algumas vezes pode ser útil gravar novos valores na tabela de argumentos. Isso é possível com a configuração padrão do módulo. (No entanto, tenha em mente que geralmente um estilo de programação melhor seria criar uma nova tabela com os seus novos argumentos e copiar os argumentos da tabela &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; conforme fossem necessários.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
args.foo = &amp;#039;algum valor&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
É possível alterar este comportamento com as opções &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; e &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt;. Se for definido &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; então não será possível gravar quaisquer valores na tabela &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt;. Se for definido &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt;, então será possível incluir novos valores na tabela, exceto se eles fossem sobrescrever argumentos que foram passados por &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Elementos &amp;quot;ref&amp;quot;===&lt;br /&gt;
Este módulo utiliza [[mw:Extension:Scribunto/Lua reference manual#Metatables|metatables]] para obter argumentos a partir de &amp;lt;code&amp;gt;#invoke&amp;lt;/code&amp;gt;. Isso permite acesso tanto aos argumentos do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual quanto do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental sem ter que utilizar a função &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt;. Isso ajuda se o seu módulo pode receber elementos {{tag|ref}} como entrada.&lt;br /&gt;
&lt;br /&gt;
Assim que os elementos {{tag|ref}} são acessados em Lua, eles são processados pelo software do MediaWiki e a referência aparecerá na lista de referências do artigo. Se o seu módulo omite o elemento de referência de sua saída, você obterá uma referência fantasma - uma referência que aparece na lista de referências, mas sem números ligando-se a ela. Esse problema ocorreu com módulos que usam &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; para detectar se devem ser utilizados argumentos do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual ou de seu parental, porque tais módulos processam automaticamente todos os argumentos disponíveis.&lt;br /&gt;
&lt;br /&gt;
Este módulo resolve esse problema permitindo o acesso tanto aos argumentos do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; atual quanto aos do &amp;#039;&amp;#039;frame&amp;#039;&amp;#039; parental, ao mesmo tempo em que só requisita esses argumentos quando são necessários. No entanto, o problema ainda ocorrerá se você utilizar &amp;lt;code&amp;gt;pairs(args)&amp;lt;/code&amp;gt; em outros lugares do seu módulo.&lt;br /&gt;
&lt;br /&gt;
===Limitações conhecidas===&lt;br /&gt;
O uso de &amp;#039;&amp;#039;metatables&amp;#039;&amp;#039; também tem aspectos negativos. A maioria das ferramentas normais para tabelas em Lua não funcionarão adequadamente na tabela &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt;, incluindo o operador &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, a função &amp;lt;code&amp;gt;next()&amp;lt;/code&amp;gt;, e as funções da biblioteca table. Se o uso disso é importante para o seu módulo, você deve utilizar a sua própria função de processamento de argumentos em vez deste módulo.&lt;br /&gt;
&lt;br /&gt;
==Ver também==&lt;br /&gt;
* [[Wikipédia:Projetos/Scribunto]]&lt;br /&gt;
&amp;lt;includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- Categorias aqui e links para outros idiomas no Wikidata --&amp;gt;&lt;br /&gt;
{{#ifeq:{{SUBPAGENAME}}|Testes||&lt;br /&gt;
[[Categoria:!Módulos]]&lt;br /&gt;
[[Categoria:!Metamódulos Lua]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Categoria:Páginas de documentação de módulos]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tavoraadmin</name></author>
	</entry>
</feed>