Module:Arguments/doc/tr

{{#switch: {{Languages|Module:Arguments/doc}}

{{Shared Template Warning|Module:Arguments|Module:Arguments}} {{Used in system}} {{Module rating|release}} {{Module rating|protected}}

Bu modül, {{Magic word|#invoke|...|ext=Scribunto|code=1|nowrap=1}} üzerinden iletilen argümanların kolay işlenmesini sağlar. Diğer modüller tarafından kullanılması amaçlanan bir meta modüldür ve doğrudan {{tlc| #invoke:... }}'tan çağrılmamalıdır. Özellikleri şunları içerir:


 * Bağımsız değişkenlerin kolay kırpılması ve boş argümanların kaldırılması.
 * 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.)
 * Bağımsız değişkenler doğrudan başka bir Lua modülünden veya hata ayıklama konsolundan aktarılabilir.
 * Bağımsız değişkenler gerektiği gibi getirilir ve bu, {{xtag|ref}} etiketleriyle ilgili (bazı) sorunların önlenmesine yardımcı olabilir.
 * Çoğu özellik özelleştirilebilir.



Temel kullanım
İlk önce modülü yüklemeniz gerekir. adlı bir işlev içerir.

En temel senaryoda, ana işlevinizin içinde  kullanabilirsiniz. değişkeni, üzerindeki bağımsız değişkenleri içeren bir tablodur. (Ayrıntılar için aşağıya bakın.)

Bununla birlikte, önerilen uygulama, bir işlevi yalnızca üzerinden bağımsız değişkenleri işlemek için kullanmaktır. 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.

Birden çok işlevin bağımsız değişkenleri kullanmasını istiyorsanız ve bunlara üzerinden da erişilebilmesini istiyorsanız, bir sarmalayıcı işlevi kullanabilirsiniz.

Seçenekler
Aşağıdaki seçenekler mevcuttur. Aşağıdaki bölümlerde açıklanmıştır.



Boşlukların kırpılması ve çıkarılması
Boş bağımsız değişkenler genellikle MediaWiki şablonlarını Lua'ya dönüştürmeye yeni başlayan kodlayıcıları tetikler. Şablon sözdiziminde, boş dizeler ve yalnızca boşluklardan oluşan dizeler  kabul edilir. Bununla birlikte, Lua'da boş dizeler ve boşluklardan oluşan dizeler  kabul edilir. Bu, Lua modüllerinizi yazarken bu tür bağımsız değişkenlere dikkat etmezseniz, aslında  olarak ele alınması gereken bir şeyi   olarak değerlendirebileceğiniz anlamına gelir. Bunu önlemek için, varsayılan olarak bu modül tüm boş argümanları kaldırır.

Benzer şekilde boşluk, konumsal argümanlarla uğraşırken sorunlara neden olabilir. öğ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. Çoğu zaman bu ek boşluk istenmez, bu nedenle bu modül varsayılan olarak onu keser.

Bununla birlikte, bazen girdi olarak boş bağımsız değişkenler kullanmak istersiniz ve bazen ek boşluklar tutmak istersiniz. Bu, bazı şablonları tam olarak yazıldıkları gibi dönüştürmek için gerekli olabilir. Bunu yapmak istiyorsanız,  ve   bağımsız değişkenlerini   olarak ayarlayabilirsiniz.



Bağımsız değişkenlerin özel biçimlendirmesi
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. Bunun gibi şeyler yapmak için  seçeneğini kullanabilirsiniz. Bu seçeneğin girdisi,  ve   olmak üzere iki parametre alan ve tek bir değer döndüren bir işlev olmalıdır. Bu değer,  tablosundaki   alanına eriştiğinizde elde edeceğiniz değerdir.

Örnek 1: 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.

Örnek 2: 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.

Örnek 1:

Örnek 2:

Ayrıca,  işlevinin,   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.



Çerçeveler ve üst çerçeveler
tablosundaki bağımsız değişkenler, aynı anda geçerli çerçeveden veya onun üst çerçevesinden geçirilebilir. Bunun ne anlama geldiğini anlamak için bir örnek vermek en kolay yoldur. Diyelim ki  adında bir modülümüz var. Bu modül, iletildiği ilk iki konumsal argümanı yazdırır.

daha sonra  kodunu içeren   tarafından çağrılır. Bu, "firstInvokeArg" sonucunu üretir.

Şimdi  ile çağırsaydık, aşağıdakiler olurdu:

Bu davranışı değiştirmek için ayarlayabileceğiniz üç seçenek vardır:,   ve. öğesini ayarlarsanız, yalnızca geçerli çerçeveden iletilen bağımsız değişkenler kabul edilecektir;  öğesini ayarlarsanız, yalnızca üst çerçeveden iletilen bağımsız değişkenler kabul edilir; ve   öğ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. açısından sonuçlar:

    

   

   </dd> </dl>

Sarmalayıcılar
seçeneği, sınırlı sayıda şablonu sarmalayıcı şablonlar, yani tek amacı bir modülü çağırmak olan şablonlar olarak belirtmek için kullanılır. 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  ile iletilen çerçevedeki bağımsız değişkenleri kontrol eder. 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 veya bir sarmalayıcı şablonu aracılığıyla çağrılmasına olanak tanır.

Örneğin, tek içeriğin (<noinclude ></noinclude> etiketlerindeki içerik hariç)   modülüdür. Bu şablon için doğrudan ifadesine iletilen argümanları kontrol etmenin bir anlamı yoktur, çünkü orada hiçbir bağımsız değişken belirtilmeyecektir. seçeneğini kullanarak ile iletilen argümanları kontrol etmekten kaçınabiliriz, ancak bunu yaparsak  diğer sayfalardan da çalışmayacaktır. Durum böyle olsaydı, kodundaki  hangi sayfadan kullanılmış olursa olsun tamamen göz ardı edilebilir. Template:Navbox şablonu sarmalayıcı olarak belirtmek için  seçeneğini kullanarak,  ç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.

Sarmalayıcılar bir dize olarak veya bir dizeler dizisi olarak belirtilebilir.

<span id="Writing_to_the_ _table">

tablosuna yazmak
Bazen  tablosuna yeni değerler yazmak faydalı olabilir. Bu, bu modülün varsayılan ayarlarıyla mümkündür. (Bununla birlikte, yeni değerlerinizle yeni bir tablo oluşturmanın ve gerektiğinde  tablosundan bağımsız değişkenleri kopyalamanın genellikle daha iyi bir kodlama stili olduğunu unutmayın.)

Bu davranışı  ve   seçenekleriyle değiştirmek mümkündür. ayarlanırsa,  tablosuna herhangi bir değer yazmak mümkün değildir. ayarlanırsa, tabloya yeni değerler eklemek mümkündür, ancak üzerinden iletilen herhangi bir bağımsız değişkenin üzerine yazılacaksa bir değer eklemek mümkün değildir.

<span id="Ref_tags">

Ref etikletleri
Bu modül, üzerinden bağımsız değişkenler almak için meta tablolar kullanır. Bu,  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. Bu, modülünüzün giriş olarak ref etiketleri geçirilebilmesi durumunda yardımcı olabilir.

ref etiketlerine Lua'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. Modülünüz kaynak etiketini çıktıdan çıkarmaya devam ederse, sonunda bir hayali referans elde edersiniz. 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  kullanan modüllerde bir sorun olmuştur.

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. Bununla birlikte, modülünüzün başka bir yerinde  kullanırsanız sorun yine de ortaya çıkacaktır.

<span id="Known_limitations">

Bilinen sınırlamalar
Meta tablo kullanımının dezavantajları da vardır. Normal Lua tablo araçlarının çoğu,  işlemi,   işlevi ve   kitaplığındaki işlevler dahil olmak üzere   tablosunda düzgün çalışmaz. Bunları kullanmak modülünüz için önemliyse, bu modül yerine kendi argüman işleme fonksiyonunuzu kullanmalısınız.

Denemeler
}}
 * #default=