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 (string or object)
A free-form plain-text string (i.e. no wikitext or HTML) in the content-language of the wiki, or an object containing those strings keyed by language code.

The default value for all InterfaceText fields is.

String type
If it is a string, it must contain a non-localized string in the content language of the local wiki.

Object type
If it is an object, the object must have this mapping:

Example
An example TemplateData structure as specified within wikitext on a template page. Below is how the above example would be displayed on the template page: {   "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
See the generated help at Special:ApiHelp/templatedata. A sample invocation (formatted for human readability) is:

This returns the template data for Template:Cite web. The ... block for this template is on its transcluded template documentation page, en:Template:Cite web/doc.

Additions and changes to JSON as received from the API
The JSON structure provided in response to an API HTTP get request is significantly different than that which is defined in the ... block. 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