Extension:TemplateData/tr

TemplateData uzantısı, etiketi ve editörlerin birlikte şablonların nasıl çağrılması gerektiğini belirtmelerine izin veren bir API sunar. Bu bilgiler, son kullanıcılar için iyi biçimlendirilmiş bir tablo olarak ve diğer sistemlerin (ör. VisualEditor) şablonlarla ve parametreleriyle çalışmak için arabirimler oluşturmasına olanak tanıyan bir JSON API'si olarak mevcuttur. Ayrıntılı yardım için sayfasına bakın.

Veri düzenleme
TemplateData uzantısı, bir şablon sayfasının vikimetinde tanımlı bir etiketi olmasıyla çalışır (isteğe bağlı olarak farklı bir sayfadan da aktarılabilir). Bu, birçok vikinin şablon belgelerini ayrı bir sayfadan aktarmasıyla ilgili ortak düzen ile uyumlu olacak şekilde tasarlanmıştır (ancak zorunlu değildir). etiketinin bu içeriği, aşağıda açıklanan biçim kullanılarak geçerli JSON olmalıdır; tüm açıklamaların düz metin olması gerektiğini unutmayın (şablon verilerinin içinde vikimetin kabul edilmez).

Bir sayfaya blok eklendiğinde, TemplateData uzantısı sayfa kaydedilirken aşağıdaki kontrolleri gerçekleştirir:


 * 1) İçerikler geçerli JSON olmalıdır;
 * 2) JSON yapısı içindeki her öğe aşağıda belirtildiği gibi beklenen türde olmalıdır (örneğin, nesne, dizi veya ilkel); ve
 * 3) Belirtilen olası değerler listesi olan öğeler için (örn.  ), JSON nesnesindeki değer bu değerlerden biriyle eşleşmelidir.

Bu kontrollerden herhangi biri başarısız olursa, sunucunun kaydedilmesine izin verilmez ve düzenleme sayfasının üzerinde bir hata mesajı görüntülenir.

Otomatik değer öğeleri için hata 2700,,  ve  etiketleri dahil olmak üzere  içine eklenen herhangi bir şablonda çalışmasını engeller. TemplateData bloğu doğru kaydedilecek, ancak şablon kullanıldığında ortaya çıkan wikitext doğru şekilde ayrıştırılmayacak.

yerine  kullanamayacağınızı unutmayın.

Biçim
Aşağıda, JSON verilerinin   etiketleri tarafından çevrelenen şablon sayfasında tanımlandığı gibi görselleştirilmiş bir sürümüdür. Resmi özellik TemplateData deposunda mevcuttur. En son sürüm için Specification.md sayfasına bakın.

TemplateData nesnesi
TemplateData nesnesi, şablon sayfasındaki  öğesinde bulunan bir JSON kök öğesidir.

InterfaceText (dize veya nesne)
Vikinin içerik dilinde serbest biçimli düz metin dizesi (yani vikimetin veya HTML yok) veya dil koduyla anahtarlanmış bu dizeleri içeren bir nesne.

Tüm InterfaceText alanları için varsayılan değer.

Dize türü
Bir dize ise, yerel vikinin içerik dilinde yerelleştirilmemiş bir dize içermelidir.

Nesne türü
Nesne ise, nesnede şu eşleme bulunmalıdır:

Örnek
Şablon sayfasında wikitext içinde belirtildiği gibi örnek bir TemplateData yapısı. Yukarıdaki örnek şablon sayfasında nasıl görüntülenecektir: {   "description": "Label unsigned comments in a conversation.", "params": { "user": { "label": "User's name", "type": "wiki-user-name", "required": true, "description": "User name of person who forgot to sign their comment.", "aliases": ["1"] },       "date": { "label": "Date", "suggested": true, "description": { "en": "Timestamp of when the comment was posted, in YYYY-MM-DD format." },           "aliases": ["2"], "autovalue": "" },       "year": { "label": "Year", "type": "number" },       "month": { "label": "Month", "inherits": "year" },       "day": { "label": "Day", "inherits": "year" },       "comment": { "required": false }   },    "sets": [ {           "label": "Date", "params": ["year", "month", "day"] }   ],    "maps": { "ExampleConsumer": { "foo": "user", "bar": ["year", "month", "day"], "quux": [ "date", ["day", "month"], ["month", "year"], "year" ]       }    } }

API
Oluşturulan yardıma Special:ApiHelp/templatedata altında bakın. Örnek bir çağrı (insan tarafından okunabilirlik için biçimlendirilmiş):

Bu, Şablon:Web kaynağı için şablon verilerini döndürür. Bu şablon için ... bloğu, aktarılan şablon belgesi sayfasında ki tr:Şablon:Web kaynağı/belge.

API'dan alınan JSON'a ekleme ve değişiklikler
Bir API HTTP alma isteğine yanıt olarak sağlanan JSON yapısı, ... bloğunda tanımlanandan önemli ölçüde farklıdır. API isteğine yanıt olarak, TemplateData uzantısı JSON nesnesinde aşağıdaki değişiklikleri yapar:
 * İki sarma nesneleri ekler:
 * Bir veya daha fazla Sayfa Nesnesi içeren genel bir Sayfa Nesnesi
 * Sayısal anahtarı olan bir nesne: Sayfa Nesnesi
 * Gerçek TemplateData Nesnesi'nde eklemeler/değişiklikler
 * Verilerin istendiği sayfanın adını içeren  anahtarını ekleyin (ör. "Template:Cite web").
 * anahtarını ve dizisini, şablon sayfasındaki TemplateData Nesnesi içindeki  anahtarında gerçekleşme sırasını kullanarak ekleyin.
 * anahtarı ekleyin
 * Geçerli vikiler Vikipedi dil kodu için tek bir anahtarla yalnızca dizeler olan tüm TemplateText oluşumlarını değiştirin
 * Tüm  anahtarlarını kaldırın.
 * Kalıtımın tanımlandığı parametreden, mirasçının Parametre Nesnesi öğesinde açıkça tanımlanmış anahtarlar tarafından kullanılmayan tüm özellikleri ekleyin.
 * Her bir Parametre Nesnesi içindeki açıkça tanımlanmamış veya devralınmamış tüm anahtarlar için varsayılan değerler ekleyin.

API tarafından sağlanan JSON nesnesi örneği
Örnek bölümündeki (yukarıda) TemplateData yapısı için bir API isteğine yanıt görülebilir:
 * HTML biçiminde https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData&format=jsonfm
 * API tarafından yayınlandığı gibi: https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData

Ayrıca bakınız

 * – TemplateData temel alarak şablonların vikimetini seçmek ve eklemek için kullanıcı arayüzü.
 * GitHub: jeblad/TemplateData – bazı Lua işlevselliğine sahip alternatif sürüm.