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. In response to the API request, extension TemplateData makes the following changes to the JSON object:
 * Adds two wrapping objects:
 * An overall Pages Object containing one or more Page Objects
 * An object with a numeric key: a Page Object
 * Additions/changes to the actual TemplateData Object
 * Add the  key with the name of the page from which the data was requested (e.g. "Template:Cite web").
 * Add the  key and array using the order in which the parameters occur in the   key within the TemplateData Object on the template page.
 * Add the  key
 * Change all TemplateText occurrences that are just strings to objects with a single key for the current wiki's Wikipedia language code
 * Remove all  keys.
 * Add all properties from parameter from which an inheritance is defined which are not superseded by explicitly defined keys in the inheritor's Parameter Object.
 * Add default values for all keys in each Parameter Object which have not been explicitly defined or inherited.

Example of JSON object provided by API
The response to an API request for the TemplateData structure in the Example section (above) can be seen:
 * In HTML format: https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData&format=jsonfm
 * As delivered by the API: https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData