<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.mechsploit.me/index.php?action=history&amp;feed=atom&amp;title=Module%3AArguments%2Fdoc%2Ftr</id>
	<title>Module:Arguments/doc/tr - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mechsploit.me/index.php?action=history&amp;feed=atom&amp;title=Module%3AArguments%2Fdoc%2Ftr"/>
	<link rel="alternate" type="text/html" href="https://wiki.mechsploit.me/index.php?title=Module:Arguments/doc/tr&amp;action=history"/>
	<updated>2026-04-08T14:46:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.mechsploit.me/index.php?title=Module:Arguments/doc/tr&amp;diff=212&amp;oldid=prev</id>
		<title>MechsploWikiSysop: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.mechsploit.me/index.php?title=Module:Arguments/doc/tr&amp;diff=212&amp;oldid=prev"/>
		<updated>2025-09-02T02:50:14Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:50, 1 September 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>MechsploWikiSysop</name></author>
	</entry>
	<entry>
		<id>https://wiki.mechsploit.me/index.php?title=Module:Arguments/doc/tr&amp;diff=211&amp;oldid=prev</id>
		<title>mw&gt;FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.mechsploit.me/index.php?title=Module:Arguments/doc/tr&amp;diff=211&amp;oldid=prev"/>
		<updated>2024-12-06T14:03:09Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;{{#ifeq:{{SUBPAGENAME}}|doc||{{Documentation subpage}}}}&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;!--&lt;br /&gt;
--&amp;gt;&amp;lt;/noinclude&amp;gt;{{#switch:&lt;br /&gt;
| =&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Languages|Module:Arguments/doc}}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata --&amp;gt;&lt;br /&gt;
{{Shared Template Warning|Module:Arguments|Module:Arguments}}&lt;br /&gt;
{{Used in system}}&lt;br /&gt;
{{Module rating|release}}&lt;br /&gt;
{{Module rating|protected}}&lt;br /&gt;
&lt;br /&gt;
Bu modül, {{Magic word|#invoke|...|ext=Scribunto|code=1|nowrap=1}} üzerinden iletilen argümanların kolay işlenmesini sağlar.&lt;br /&gt;
Diğer modüller tarafından kullanılması amaçlanan bir meta modüldür ve doğrudan {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}}&amp;#039;tan çağrılmamalıdır.&lt;br /&gt;
Özellikleri şunları içerir:&lt;br /&gt;
&lt;br /&gt;
* Bağımsız değişkenlerin kolay kırpılması ve boş argümanların kaldırılması.&lt;br /&gt;
* Bağımsız değişkenler hem geçerli çerçeve hem de ana çerçeve tarafından aynı anda iletilebilir. (Daha fazla ayrıntı aşağıda.)&lt;br /&gt;
* Bağımsız değişkenler doğrudan başka bir Lua modülünden veya hata ayıklama konsolundan aktarılabilir.&lt;br /&gt;
* Bağımsız değişkenler gerektiği gibi getirilir ve bu, {{xtag|ref}} etiketleriyle ilgili (bazı) sorunların önlenmesine yardımcı olabilir.&lt;br /&gt;
* Çoğu özellik özelleştirilebilir.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Basic_use&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Temel kullanım ==&lt;br /&gt;
İlk önce modülü yüklemeniz gerekir.&lt;br /&gt;
&amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; adlı bir işlev içerir.&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;
En temel senaryoda, ana işlevinizin içinde &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; kullanabilirsiniz.&lt;br /&gt;
&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; değişkeni, {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} üzerindeki bağımsız değişkenleri içeren bir tablodur.&lt;br /&gt;
(Ayrıntılar için aşağıya bakın.)&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;
	-- Ana modül kodu buraya gelir.&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;
Bununla birlikte, önerilen uygulama, bir işlevi yalnızca {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} üzerinden bağımsız değişkenleri işlemek için kullanmaktır.&lt;br /&gt;
Bu, birisi modülünüzü başka bir Lua modülünden çağırırsa, kullanılabilir bir çerçeve nesnesine sahip olmanız gerekmediği anlamına gelir, bu da performansı artırır.&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;
	-- Ana modül kodu buraya gelir.&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;
Birden çok işlevin bağımsız değişkenleri kullanmasını istiyorsanız ve bunlara {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} üzerinden da erişilebilmesini istiyorsanız, bir sarmalayıcı işlevi kullanabilirsiniz.&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 p = {}&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;
p.func1 = makeInvokeFunc(&amp;#039;_func1&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function p._func1(args)&lt;br /&gt;
	-- İlk işlevin kodu buraya gelir.&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;
	-- İkinci işlevin kodu buraya gelir.&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;
&amp;lt;span id=&amp;quot;Options&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Seçenekler ===&lt;br /&gt;
Aşağıdaki seçenekler mevcuttur.&lt;br /&gt;
Aşağıdaki bölümlerde açıklanmıştır.&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;
		-- Bir bağımsız değişkeni işlemek için kod&lt;br /&gt;
	end,&lt;br /&gt;
	frameOnly = true,&lt;br /&gt;
	parentOnly = true,&lt;br /&gt;
	parentFirst = true,&lt;br /&gt;
	wrappers = {&lt;br /&gt;
		&amp;#039;Template:A wrapper template&amp;#039;,&lt;br /&gt;
		&amp;#039;Template:Another wrapper template&amp;#039;&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;
&amp;lt;span id=&amp;quot;Trimming_and_removing_blanks&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Boşlukların kırpılması ve çıkarılması ===&lt;br /&gt;
Boş bağımsız değişkenler genellikle MediaWiki şablonlarını Lua&amp;#039;ya dönüştürmeye yeni başlayan kodlayıcıları tetikler.&lt;br /&gt;
Şablon sözdiziminde, boş dizeler ve yalnızca boşluklardan oluşan dizeler &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; kabul edilir.&lt;br /&gt;
Bununla birlikte, Lua&amp;#039;da boş dizeler ve boşluklardan oluşan dizeler &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; kabul edilir.&lt;br /&gt;
Bu, Lua modüllerinizi yazarken bu tür bağımsız değişkenlere dikkat etmezseniz, aslında &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; olarak ele alınması gereken bir şeyi &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; olarak değerlendirebileceğiniz anlamına gelir.&lt;br /&gt;
Bunu önlemek için, varsayılan olarak bu modül tüm boş argümanları kaldırır.&lt;br /&gt;
&lt;br /&gt;
Benzer şekilde boşluk, konumsal argümanlarla uğraşırken sorunlara neden olabilir.&lt;br /&gt;
{{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} öğesinden gelen adlandırılmış bağımsız değişkenler için boşluklar kırpılsa da, konumsal bağımsız değişkenler için korunur.&lt;br /&gt;
Çoğu zaman bu ek boşluk istenmez, bu nedenle bu modül varsayılan olarak onu keser.&lt;br /&gt;
&lt;br /&gt;
Bununla birlikte, bazen girdi olarak boş bağımsız değişkenler kullanmak istersiniz ve bazen ek boşluklar tutmak istersiniz.&lt;br /&gt;
Bu, bazı şablonları tam olarak yazıldıkları gibi dönüştürmek için gerekli olabilir.&lt;br /&gt;
Bunu yapmak istiyorsanız, &amp;lt;code&amp;gt;trim&amp;lt;/code&amp;gt; ve &amp;lt;code&amp;gt;removeBlanks&amp;lt;/code&amp;gt; bağımsız değişkenlerini &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; olarak ayarlayabilirsiniz.&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;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Custom_formatting_of_arguments&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Bağımsız değişkenlerin özel biçimlendirmesi ===&lt;br /&gt;
Bazen bazı boş bağımsız değişkenleri kaldırmak isterken diğerlerini değil, belki de tüm konumsal bağımsız değişkenleri küçük harfle yazmak isteyebilirsiniz.&lt;br /&gt;
Bunun gibi şeyler yapmak için &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; seçeneğini kullanabilirsiniz.&lt;br /&gt;
Bu seçeneğin girdisi, &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; ve &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; olmak üzere iki parametre alan ve tek bir değer döndüren bir işlev olmalıdır.&lt;br /&gt;
Bu değer, &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosundaki &amp;lt;code&amp;gt;key&amp;lt;/code&amp;gt; alanına eriştiğinizde elde edeceğiniz değerdir.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Örnek 1:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Bu işlev, ilk konumsal bağımsız değişken için boşluğu korur, ancak diğer tüm bağımsız değişkenleri kırpar ve diğer tüm boş bağımsız değişkenleri kaldırır.&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;
	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;
&amp;#039;&amp;#039;&amp;#039;Örnek 2:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Bu işlev, boş bağımsız değişkenleri kaldırır ve tüm argümanları küçük harfe dönüştürür, ancak boşlukları konum parametrelerinden kırpmaz.&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;
	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;
{{Note|text=&lt;br /&gt;
&amp;lt;code&amp;gt;string&amp;lt;/code&amp;gt; veya &amp;lt;code&amp;gt;nil&amp;lt;/code&amp;gt; türünde olmayan girdi geçirilirse yukarıdaki işlevler başarısız olur.&lt;br /&gt;
Modülünüzün ana işlevinde &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; işlevini kullanırsanız ve bu işlev başka bir Lua modülü tarafından çağrılırsa durum böyle olabilir.&lt;br /&gt;
Bu durumda, girişinizin türünü kontrol etmeniz gerekecektir.&lt;br /&gt;
Özellikle {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} bağımsız değişkenleri için bir işlev kullanıyorsanız (yani, &amp;lt;code&amp;gt;p.main&amp;lt;/code&amp;gt; ve &amp;lt;code&amp;gt;p._main&amp;lt;/code&amp;gt; işlevleriniz veya benzeri bir şeye sahipseniz) bu bir sorun değildir.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Collapse top|1=Tür denetimli Örnek 1 ve 2}}&lt;br /&gt;
Örnek 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;
Örnek 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;
{{Collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
Ayrıca, &amp;lt;code&amp;gt;valueFunc&amp;lt;/code&amp;gt; işlevinin, &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosundan bir bağımsız değişken istendiğinde aşağı yukarı çağrıldığını lütfen unutmayın. Bu nedenle performansı önemsiyorsanız, kodunuzla verimsiz bir şey yapmadığınızdan emin olmalısınız.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Frames_and_parent_frames&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Çerçeveler ve üst çerçeveler ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosundaki bağımsız değişkenler, aynı anda geçerli çerçeveden veya onun üst çerçevesinden geçirilebilir.&lt;br /&gt;
Bunun ne anlama geldiğini anlamak için bir örnek vermek en kolay yoldur.&lt;br /&gt;
Diyelim ki &amp;lt;code&amp;gt;Module:ExampleArgs&amp;lt;/code&amp;gt; adında bir modülümüz var.&lt;br /&gt;
Bu modül, iletildiği ilk iki konumsal argümanı yazdırır.&lt;br /&gt;
&lt;br /&gt;
{{Collapse top|1=Module:ExampleArgs kodu}}&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;
	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;
{{Collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Module:ExampleArgs&amp;lt;/code&amp;gt; daha sonra &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:ExampleArgs|main|firstInvokeArg}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; kodunu içeren &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt; tarafından çağrılır.&lt;br /&gt;
Bu, &amp;quot;firstInvokeArg&amp;quot; sonucunu üretir.&lt;br /&gt;
&lt;br /&gt;
Şimdi &amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt; ile çağırsaydık, aşağıdakiler olurdu:&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; {{!}} Kod&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; {{!}} Sonuç&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;
{{!}} firstInvokeArg&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;
{{!}} firstInvokeArg&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;
{{!}} firstInvokeArg secondTemplateArg&lt;br /&gt;
{{!)}}&lt;br /&gt;
&lt;br /&gt;
Bu davranışı değiştirmek için ayarlayabileceğiniz üç seçenek vardır: &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; ve &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; öğesini ayarlarsanız, yalnızca geçerli çerçeveden iletilen bağımsız değişkenler kabul edilecektir; &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; öğesini ayarlarsanız, yalnızca üst çerçeveden iletilen bağımsız değişkenler kabul edilir; ve &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; öğesini ayarlarsanız, bağımsız değişkenler hem geçerli hem de üst çerçevelerden iletilecektir, ancak ana çerçevenin geçerli çerçeveye göre önceliği olacaktır.&lt;br /&gt;
&amp;lt;code&amp;gt;Template:ExampleArgs&amp;lt;/code&amp;gt; açısından sonuçlar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dl&amp;gt;&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;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; {{!}} Kod&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; {{!}} Sonuç&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;
{{!}} firstInvokeArg&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;
{{!}} firstInvokeArg&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;
{{!}} firstInvokeArg&lt;br /&gt;
{{!)}}&lt;br /&gt;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;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; {{!}} Kod&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; {{!}} Sonuç&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;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dt&amp;gt;&amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
&amp;lt;dd&amp;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; {{!}} Kod&lt;br /&gt;
! style=&amp;quot;width: 40%;&amp;quot; {{!}} Sonuç&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;
{{!}} firstInvokeArg&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;
&amp;lt;/dd&amp;gt;&lt;br /&gt;
&amp;lt;/dl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|text=&lt;br /&gt;
{{Ordered list&lt;br /&gt;
|1=&lt;br /&gt;
Hem &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; hem de &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; seçeneklerini ayarlarsanız, modül {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} üzerinden hiçbir argüman getirmez.&lt;br /&gt;
Muhtemelen istediğin bu değil.&lt;br /&gt;
|2=&lt;br /&gt;
Bazı durumlarda bir ana çerçeve mevcut olmayabilir, örn. &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; geçerli çerçeve yerine üst çerçeve geçirilirse.&lt;br /&gt;
Bu durumda, yalnızca çerçeve bağımsız değişkenleri kullanılacaktır (&amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; ayarlanmadıkça, bu durumda hiçbir bağımsız değişken kullanılmayacaktır) ve &amp;lt;code&amp;gt;parentFirst&amp;lt;/code&amp;gt; ve &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; seçeneklerinin hiçbir etkisi olmayacaktır.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Wrappers&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Sarmalayıcılar ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; seçeneği, sınırlı sayıda şablonu &amp;#039;&amp;#039;sarmalayıcı şablonlar&amp;#039;&amp;#039;, yani tek amacı bir modülü çağırmak olan şablonlar olarak belirtmek için kullanılır.&lt;br /&gt;
Modül, bir sarmalayıcı şablonundan çağrıldığını algılarsa, yalnızca üst çerçevedeki argümanları kontrol eder; aksi takdirde, yalnızca &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; ile iletilen çerçevedeki bağımsız değişkenleri kontrol eder.&lt;br /&gt;
Bu, modüllerin her bağımsız değişken araması için hem çerçeveyi hem de ana çerçeveyi kontrol etme zorunluluğuyla ilişkili performans kaybı olmadan {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} veya bir sarmalayıcı şablonu aracılığıyla çağrılmasına olanak tanır.&lt;br /&gt;
&lt;br /&gt;
Örneğin, {{tlx|Navbox}} tek içeriğin ({{tag|noinclude}} etiketlerindeki içerik hariç) &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Navbox|navbox}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; modülüdür.&lt;br /&gt;
Bu şablon için doğrudan {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} ifadesine iletilen argümanları kontrol etmenin bir anlamı yoktur, çünkü orada hiçbir bağımsız değişken belirtilmeyecektir.&lt;br /&gt;
&amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; seçeneğini kullanarak {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} ile iletilen argümanları kontrol etmekten kaçınabiliriz, ancak bunu yaparsak {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} diğer sayfalardan da çalışmayacaktır.&lt;br /&gt;
Durum böyle olsaydı, {{tmpl|0={{tlc|&amp;lt;nowiki&amp;gt;#invoke:Navbox&amp;lt;/nowiki&amp;gt;|navbox|3=text=$1}}|Bazı metin}} kodundaki {{tmpl|0={{para|text|$1}}|Bazı metin}} hangi sayfadan kullanılmış olursa olsun tamamen göz ardı edilebilir.&lt;br /&gt;
[[Template:Navbox]] şablonu sarmalayıcı olarak belirtmek için &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; seçeneğini kullanarak, {{tmpl|0={{tlc|&amp;lt;nowiki&amp;gt;#invoke:Navbox&amp;lt;/nowiki&amp;gt;|main|3=text=$1}}|Bazı metin}} çoğu sayfadan çalıştırabiliriz, ancak yine de modülün [[Template:Navbox]] sayfasındaki bağımsız değişkenleri kontrol etmesini gerektirmeyiz.&lt;br /&gt;
&lt;br /&gt;
Sarmalayıcılar bir dize olarak veya bir dizeler dizisi olarak belirtilebilir.&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;Template:Wrapper template&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;Template:Wrapper 1&amp;#039;,&lt;br /&gt;
		&amp;#039;Template:Wrapper 2&amp;#039;,&lt;br /&gt;
		-- Buraya herhangi bir sayıda sarmalayıcı şablonu eklenebilir.&lt;br /&gt;
	}&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|text=&lt;br /&gt;
{{Ordered list&lt;br /&gt;
|1=&lt;br /&gt;
Modül, bir sarmalayıcı şablonunun &amp;lt;code&amp;gt;/sandbox&amp;lt;/code&amp;gt; alt sayfasından çağrıldığını otomatik olarak algılayacaktır, bu nedenle korumalı alan sayfalarını açıkça belirtmeye gerek yoktur.&lt;br /&gt;
|2=&lt;br /&gt;
&amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; seçeneği, &amp;lt;code&amp;gt;frameOnly&amp;lt;/code&amp;gt; ve &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt; seçeneklerinin varsayılanını etkili bir şekilde değiştirir.&lt;br /&gt;
Örneğin, &amp;lt;code&amp;gt;parentOnly&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; ayarlı olarak açıkça &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; olarak ayarlanmışsa, sarmalayıcı şablonları aracılığıyla yapılan çağrılar hem çerçeve hem de ana bağımsız değişkenlerin yüklenmesine neden olur, ancak sarmalayıcı şablonlar aracılığıyla olmayan çağrılar yalnızca çerçeve bağımsız değişkenleriyle sonuçlanır.&lt;br /&gt;
|3=&lt;br /&gt;
&amp;lt;code&amp;gt;wrappers&amp;lt;/code&amp;gt; seçeneği ayarlanmışsa ve ana çerçeve yoksa, modül her zaman &amp;lt;code&amp;gt;getArgs&amp;lt;/code&amp;gt; ile iletilen çerçeveden argümanları alır.&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosuna yazmak ===&lt;br /&gt;
Bazen &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosuna yeni değerler yazmak faydalı olabilir.&lt;br /&gt;
Bu, bu modülün varsayılan ayarlarıyla mümkündür.&lt;br /&gt;
(Bununla birlikte, yeni değerlerinizle yeni bir tablo oluşturmanın ve gerektiğinde &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosundan bağımsız değişkenleri kopyalamanın genellikle daha iyi bir kodlama stili olduğunu unutmayın.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
args.foo = &amp;#039;bazı değer&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bu davranışı &amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; ve &amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt; seçenekleriyle değiştirmek mümkündür.&lt;br /&gt;
&amp;lt;code&amp;gt;readOnly&amp;lt;/code&amp;gt; ayarlanırsa, &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosuna herhangi bir değer yazmak mümkün değildir.&lt;br /&gt;
&amp;lt;code&amp;gt;noOverwrite&amp;lt;/code&amp;gt; ayarlanırsa, tabloya yeni değerler eklemek mümkündür, ancak {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} üzerinden iletilen herhangi bir bağımsız değişkenin üzerine yazılacaksa bir değer eklemek mümkün değildir.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Ref_tags&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Ref etikletleri ===&lt;br /&gt;
Bu modül, {{tlc|&amp;lt;nowiki&amp;gt;#invoke:...&amp;lt;/nowiki&amp;gt;}} üzerinden bağımsız değişkenler almak için [[mw:Special:MyLanguage/Extension:Scribunto/Lua reference manual#Metatables|meta tablolar]] kullanır.&lt;br /&gt;
Bu, &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; işlevini kullanmadan hem çerçeve bağımsız değişkenlerine hem de üst çerçeve bağımsız değişkenlerine erişim sağlar.&lt;br /&gt;
Bu, modülünüzün giriş olarak {{xtag|ref}} etiketleri geçirilebilmesi durumunda yardımcı olabilir.&lt;br /&gt;
&lt;br /&gt;
{{xtag|ref}} etiketlerine Lua&amp;#039;dan erişilir erişilmez, bunlar MediaWiki yazılımı tarafından işlenir ve kaynakça, maddenin altındaki kaynakça listesinde görünecektir.&lt;br /&gt;
Modülünüz kaynak etiketini çıktıdan çıkarmaya devam ederse, sonunda bir hayali referans elde edersiniz.&lt;br /&gt;
Bu, modüller mevcut her bağımsız değişkeni otomatik olarak işlediğinden, çerçeveden mi yoksa üst çerçeveden mi bağımsız değişkenlerin kullanılacağını saptamak için &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt; kullanan modüllerde bir sorun olmuştur.&lt;br /&gt;
&lt;br /&gt;
Bu modül, hem çerçeve hem de üst çerçeve argümanlarına erişime izin vererek bu sorunu çözerken, yine de yalnızca gerekli olduğunda bu argümanları getirir.&lt;br /&gt;
Bununla birlikte, modülünüzün başka bir yerinde &amp;lt;code&amp;gt;pairs(args)&amp;lt;/code&amp;gt; kullanırsanız sorun yine de ortaya çıkacaktır.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Known_limitations&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Bilinen sınırlamalar ===&lt;br /&gt;
Meta tablo kullanımının dezavantajları da vardır.&lt;br /&gt;
Normal Lua tablo araçlarının çoğu, &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; işlemi, &amp;lt;code&amp;gt;next()&amp;lt;/code&amp;gt; işlevi ve &amp;lt;code&amp;gt;table&amp;lt;/code&amp;gt; kitaplığındaki işlevler dahil olmak üzere &amp;lt;code&amp;gt;args&amp;lt;/code&amp;gt; tablosunda düzgün çalışmaz.&lt;br /&gt;
Bunları kullanmak modülünüz için önemliyse, bu modül yerine kendi argüman işleme fonksiyonunuzu kullanmalısınız.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Tests&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Denemeler ==&lt;br /&gt;
{{ModuleQuality}}&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{Sandbox other||&lt;br /&gt;
&amp;lt;!-- Categories below this line; interwikis at Wikidata --&amp;gt;&lt;br /&gt;
[[Category:Lua metamodules{{#translation:}}]]&lt;br /&gt;
}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Module documentation pages{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
| #default=&lt;br /&gt;
  {{#invoke:Template translation|renderTranslatedTemplate|template=Module:Arguments/doc|noshift=1|uselang={{int:lang}}}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>mw&gt;FuzzyBot</name></author>
	</entry>
</feed>