Rozšíření:TemplateData
TemplateData Stav rozšíření: stabilní |
|
---|---|
Zavádění | Značka , API |
Popis | Umožňuje ukládat, načítat a vizualizovat informace o šablonách |
Napsal(i) | Timo Tijhof, Moriel Schottlender, James Forrester, Trevor Parscal, Bartosz Dziewoński, Marielle Volz, ... |
Nejnovější verze | 0.1.2 (Průběžně aktualizováno) |
Zásady kompatibility | Vydání snímků následuje MediaWiki. Hlavní vývojová větev není zpětně kompatibilní. |
MediaWiki | >= 1.43 |
PHP | 5.4+ |
Změny v databázi | Ne |
Licence | GNU General Public License 2.0 nebo pozdější |
Zdrojový kód | |
|
|
<templatedata> |
|
Čtvrtletní stahování | 295 (Ranked 13th) |
Používání veřejných wikin | 6,971 (Ranked 24th) |
Přeložte rozšíření TemplateData, používá-li lokalizaci z translatewiki.net | |
Problémy | Otevřené úkoly · Nahlásit chybu |
Rozšíření TemplateData zavádí značku <templatedata>
a API, které společně umožňují editorům určit, jak mají být šablony a jejich parametry používány.
Tato informace je k dispozici jako formátovaná tabulka pro koncové uživatele a jako JSON API, které umožňuje jiným systémům (např. VisualEditor ) vytvářet rozhraní pro práci se šablonami.
Podrobnou nápovědu najdete na stránce Nápověda:TemplateData .
Instalace
- Stáhněte soubor/y a vložte je do adresáře pojmenovaného
TemplateData
ve vaší složceextensions/
.
Vývojáři a přispěvatelé kódu by si místo toho měli nainstalovat rozšíření from Git pomocí:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData - Na konec vašeho souboru LocalSettings.php přidejte následující kód:
wfLoadExtension( 'TemplateData' );
- Dokončeno – Přejděte na stránku Special:Version vaší wiki a zkontrolujte, zda bylo rozšíření úspěšně nainstalováno.
Úpravy dat
Rozšíření TemplateData funguje tak, že ve wikitextu šablony stránky je definována značka <templatedata>
(volitelně může být také přenesena z jiné stránky).
Toto je navrženo tak, aby bylo kompatibilní s běžným rozvržením, které má mnoho wiki při předávání dokumentace k šablonám ze samostatné stránky (není to však nutné).
Obsah značky <templatedata>
musí být platný JSON ve formátu popsaném níže. Všimněte si, že všechny popisy musí být ve formátu prostého textu (v datech šablony není akceptován žádný wikitext).
Je-li na stránce zahrnut blok <templatedata>
, provede rozšíření TemplateData při ukládání stránky následující kontroly:
- Obsah musí být platný JSON.
- Každá položka ve struktuře JSON musí být očekávaného typu, jak je uvedeno níže (např. Objekt, pole nebo primitiv).
- U položek, které mají specifikovaný seznam možných hodnot (např.
type
parametr), musí hodnota v objektu JSON odpovídat jedné z těchto hodnot.
Pokud některá z těchto kontrol selže, server nebude moci ukládat a nad editační stránkou se zobrazí chybová zpráva.
U položek autovalue
T4700 brání subst:
fungovat v jakékoli šabloně, která je přidána do tagu, včetně tagů <ref>
a <gallery>
.
Blok TemplateData se uloží správně, ale výsledný wikitext nebude při použití šablony správně analyzován.
Vyhněte se prosím použití {{#tag:templatedata}}
, protože to znemožňuje použití editoru dat šablon.
Formát
Níže je vizualizovaná verze dat JSON, jak je definována na stránce šablony uzavřené značkami <templatedata></templatedata>
.
Formální specifikace je k dispozici v repozitáři TemplateData.
Nejnovější verzi najdete na stránce Specification.md.
Objekt TemplateData
Objekt TemplateData je kořenový prvek JSON uzavřený v prvku <templatedata>
na stránce šablony.
Klíč | Typ | Popis |
---|---|---|
description
|
InterfaceText nebo null
|
Stručný popis šablony. Musí to být prostý text. Po vyplnění může být zobrazen jako titulek při úpravě jedné šablony a možná ve výsledcích vyhledávání, když si uživatelé vyberou jednu z mnoha. Výchozí hodnota je null .
→ For more details see: description |
params
|
Objekt obsahující objekty Param | Objekt, který mapuje každý název parametru šablony na odpovídající objekt Param popisující vlastnosti tohoto parametru.
→ For more details see: params |
paramOrder
|
Pole obsahující řetězce názvů parametrů | Logické pořadí, ve kterém by se měly parametry zobrazovat. Pole obsahuje přesně jednou každý klíč parametru. Každý řetězec musí být platným klíčem v objektu params .
→ For more details see: paramOrder |
sets
|
Pole obsahující nastavení objektů |
Pole obsahující specifikace sady. Sada je skupina parametrů, které by měly být použity společně. Výchozí nastavení je []. Všimněte si, že funkce sets je stále ve vývoji.
|
format
|
řetězec, buď inline nebo block
|
Jak by mělo být uspořádáno zobrazení wikitextu šablony. Výchozí nastavení je inline . Další vlastní formáty najdete na stránce #Custom_formats.
|
maps
|
Objekt obsahující Mapový objekt | Objekt, který propojuje zjednodušené jméno spotřebitele dat šablony (tj. Citoid, Special:MyLanguage/Wikidata atd.) s objektem mapy, který zase spojuje název parametru spotřebitele s jedním nebo více odpovídajícími názvy parametrů šablony. |
Param objekt
Klíč | Typ | Výchozí | Popis | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
label |
InterfaceText | null
|
Krátký (velmi) název parametru. Zkuste zachovat méně než 20 znaků.
→ For more details see: label | ||||||||||||||||||||||||||||
description
|
InterfaceText | null
|
Stručný popis parametru, aby uživatelé věděli, které mají vybrat ze seznamu možností.
→ For more details see: description | ||||||||||||||||||||||||||||
required
|
boolean | false
|
Parametr je vyžadován pro to, aby šablona fungovala (true, pokud musí být zadán tento parametr).
→ For more details see: required | ||||||||||||||||||||||||||||
suggested
|
boolean | false
|
Parametr je navržen pro šablonu, aby byla užitečná (true, pokud by měl být tento parametr uveden).
→ For more details see: suggested | ||||||||||||||||||||||||||||
deprecated
|
booleovský nebo řetězec | false
|
Parametr je zastaralý. Hodnota může být řetězec instrukcí poskytujících uživateli návod, co místo toho lze udělat, nebo může být jednoduše true .
→ For more details see: deprecated | ||||||||||||||||||||||||||||
aliases |
Řetězce obsahující pole | [] |
Seznam aliasů. Alias je alternativní název parametru, který lze použít namísto (nikoli vedle) primárního názvu. Aliasy nejsou dokumentovány v samostatném objektu Parameter. Pokud potřebují více informací, měly by být ve svých vlastnostech označeny jako "deprecated" (zastaralé).
→ For more details see: aliases | ||||||||||||||||||||||||||||
default |
InterfaceText | null |
Výchozí hodnota použitá šablonou, není-li parametru nebo jeho popisu přiřazena žádná hodnota.
→ For more details see: default | ||||||||||||||||||||||||||||
autovalue |
řetězec | null |
Dynamicky generovaná výchozí hodnota ve wikitextu, jako je dnešní datum nebo jméno editujícího uživatele. Bude často zahrnovat náhradu wikitextu, jako je {{subst:CURRENTYEAR}} .
→ For more details see: autovalue | ||||||||||||||||||||||||||||
example
|
InterfaceText | null
|
Příklad textu parametru, který uživatelům pomůže vyplnit správnou hodnotu.
→ For more details see: example | ||||||||||||||||||||||||||||
type |
řetězec | "unknown" |
Typ parametru pro (soft) typ hinting. Jeden z:
→ For more details see: type | ||||||||||||||||||||||||||||
inherits |
řetězec | žádný nahrazený |
Klíč názvu jiného parametru (musí to být platný klíč v objektu params ). Aktuální parametrový objekt zdědí vlastnosti od zadaného objektu parametrů, přičemž místní vlastnosti potlačí zděděné.
→ For more details see: inherits | ||||||||||||||||||||||||||||
suggestedvalues |
Řetězce obsahující pole | []
|
Nepovinná vlastnost parametru. Vytvoří seznam hodnot parametrů, které uživatelům pomohou vybrat požadovanou hodnotu. Aby se navrhované hodnoty zobrazily jako pole se seznamem ve VisualEditoru, musí být typ parametru nastaven na jeden z následujících: obsah, řádek, řetězec, číslo, neznámý nebo nevyvážený wikitext.
→ For more details see: suggestedvalues |
Nastavení objektu
Klíč |
Objekt nebo základní typ |
Popis |
---|---|---|
label
|
InterfaceText | Krátký (velmi) název parametru. Zkuste zachovat méně než 20 znaků. |
params
|
Pole řetězců | Jeden nebo více názvů parametrů, které mají být v sadě zahrnuty (každý musí být platným klíčem v objektu params ). Parametr může být ve více sadách. Ne každý parametr musí být v sadě.
|
Struktura map
Mapy jsou jedinou datovou strukturou, která jde do hloubky několika úrovní. Stalo se běžné nazývat druhou úroveň "mapový objekt".
Klíč | Typ | Výchozí | Popis |
---|---|---|---|
jméno spotřebitele | objekt | {} | Objekt, který spojuje jméno spotřebitele s mapovým objektem, který zase spojuje název parametru spotřebitele s jedním nebo více odpovídajícími názvy parametrů šablony .
Názvy parametrů šablon mohou být zadány buď jako řetězec (jedno jméno), pole řetězců (několik jmen) nebo pole polí řetězců (několik sad názvů). Každý z těchto řetězců musí být platným klíčem v objektu Specifický parametr šablony může být ve více mapách a může být použit v hodnotách více klíčů v dané mapě, ale ne každý parametr šablony musí být v mapě. Stručný příklad z Template:Cite_news#TemplateData anglické Wikipedie ilustruje strukturu objektů map. { "proveit": { "main": "title", "textarea": [ "quote" ] }, "citoid": { "title": "title", "url": "url", "publisher": "publisher", "publicationTitle": "work", "date": "date", "ISSN": [ "issn" ], "ISBN": [ "isbn" ], "contributor": "others", "author": [ [ "first", "last" ], [ "first2", "last2" ], [ "first9", "last9" ] ], "editor": [ [ "editor-first", "editor-last" ] ] } } |
Text rozhraní (řetězec nebo objekt)
Volný textový řetězec prostého textu (tj. žádný wikitext nebo HTML) v jazyce obsahu wiki nebo objekt obsahující tyto řetězce klíčované kódem jazyka.
Výchozí hodnota pro všechna textová pole rozhraní je null
.
Typ řetězce
Pokud se jedná o řetězec, musí obsahovat nelokalizovaný řetězec v jazyce obsahu místní wiki.
Typ objektu
Pokud se jedná o objekt, musí mít toto mapování:
Klíč | Typ | Popis |
---|---|---|
Kód jazyka Wikipedie | řetězec | Lokalizovaný řetězec pro uživatele daného jazyka rozhraní. |
Příklad mapování objektu:
Klíč | Hodnota |
---|---|
"en" | "Welcome to Wikipedia" |
"de" | "Willkommen bei Wikipedia" |
"fr" | "Bienvenue sur Wikipédia" |
"nl" | "Welkom op Wikipedia" |
"it" | "Benvenuti su Wikipedia" |
"es" | "Bienvenidos a Wikipedia" |
"ru" | "Добро пожаловать в Википедию" |
Příklad
Příklad struktury TemplateData, jak je uvedeno ve wikitextu na stránce šablony.
<templatedata>
{
"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": "{{subst:#time:Y-m-d}}"
},
"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"
]
}
}
}
</templatedata>
Níže je uveden příklad, který by se zobrazil na stránce šablony:
Label unsigned comments in a conversation.
Parameter | Description | Type | Status | |
---|---|---|---|---|
User's name | user 1 | User name of person who forgot to sign their comment. | User | required |
Date | date 2 | Timestamp of when the comment was posted, in YYYY-MM-DD format.
| Unknown | suggested |
Year | year | no description | Number | optional |
Month | month | no description | Number | optional |
Day | day | no description | Number | optional |
comment | comment | no description | Unknown | optional |
API
Podívejte se na vygenerovanou nápovědu na Special:ApiHelp/templatedata. Ukázkové vyvolání (formátované pro čitelnost lidmi) je:
Tím se vrátí data šablony pro Šablona:Citovat web.
Blok <templatedata>...</templatedata>
pro tuto šablonu je na stránce s dokumentací o přenesené šabloně, en:Template:Cite web/doc.
Přírůstky a změny JSON přijaté z API
Struktura JSON poskytovaná v reakci na požadavek API HTTP get se výrazně liší od struktury definované v bloku <templatedata>...</templatedata>
.
V reakci na požadavek API provede rozšíření TemplateData následující změny objektu JSON:
- Přidá dvě možnosti zabalení objektů:
- Celkový objekt stránky obsahující jeden nebo více objektů stránky
- Objekt s numerickým klíčem: stránka objektu
- Přídavky nebo změny skutečného TemplateData objektu
- Přidejte klíč názvu
title
s názvem stránky, ze které byla požadována data (např. "Template:Cite web"). - Přidejte klíč
sets
- Změňte všechny výskyty TemplateText, které jsou pouhými řetězci, na objekty s jediným klíčem pro aktuální kód jazyka Wikipedie
- Odstraňte všechny klíče
inherits
.- Přidejte všechny vlastnosti z parametru, ze kterého je definována dědičnost a které nejsou dědicem nahrazeny explicitně definovanými klíči v Parameter Object.
- Přidejte výchozí hodnoty pro všechny klíče v každém Parameter Object, které nebyly explicitně definovány nebo zděděny.
- Přidejte klíč názvu
Vizualizované rozdíly v objektu JSON TemplateData dodané API
| ||||||
|
Klíč | Typ | Popis |
---|---|---|
title
|
řetězec | Název stránky šablony (např. "Template:Cite web"). Tento klíč není součástí struktury JSON na stránce šablony. Je přidán do struktury pomocí softwaru MediaWiki na cestě k doručení přes API. |
sets
|
Pole obsahující nastavení objektů | Pole obsahující specifikace sady. Sada je skupina parametrů, které by měly být použity společně. Pokud na stránce šablony neexistuje, přidá se jako struktura do rozhraní poskytovaného API jako prázdné pole. |
Klíč | Typ | Popis |
---|---|---|
label |
InterfaceText | Přeloženo do InterfaceText objektu, pokud již v tomto formátu není. |
required |
boolean | Pokud není definován, přidá se výchozí hodnota false. |
description |
InterfaceText nebo null |
Pokud je definován jako řetězec, převeden na InterfaceText objekt. Pokud není definován, přidává se klíč s hodnotou null .
|
deprecated |
booleovský nebo řetězec | Pokud není definován, přidá se výchozí hodnota false. |
aliases |
Pole řetězců | Pokud není definován, je přiřazeno výchozí prázdné pole (tj. []). |
default |
řetězec | Pokud není definován, je přiřazena výchozí hodnota "". |
type |
řetězec | Pokud není definován, je přiřazena výchozí hodnota "unknown". |
inherits |
(odstraněno) | Tento klíč je odstraněn a jsou přidány všechny zděděné klíče. Klíče definované pro aktuální parametr mají přednost a všem klíčům, které nejsou definovány ani na aktuálním parametru, ani na klíči, od kterého zdědí, je dána výchozí hodnota. |
Klíč | Objekt nebo základní typ |
Popis |
---|---|---|
Objekt (obsahující lokalizované řetězce podle kódu jazyka Wikipedie) Pokud pole TemplateData na stránce šablony obsahuje řetězec, nikoli objekt s lokalizovanými řetězci, MediaWiki jej převede do objektu InterfaceText s řetězcem přiřazeným k názvu klíče zdroje Wikipedia v kódu jazyka Wikipedie. Výchozí hodnota pro všechna pole InterfaceText je null .
| ||
(Kód jazyka Wiki) | řetězec | Lokalizovaný řetězec pro uživatele daného jazyka rozhraní. |
Příklad objektu JSON poskytovaného API
Odpověď na žádost API o strukturu TemplateData v části Příklad (výše) lze vidět:
- Ve formátu HTML: https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData&format=jsonfm
- Podle rozhraní API: https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData
Konfigurace
Proměnná | Výchozí | Popis |
---|---|---|
$wgTemplateDataUseGUI
|
true
|
Experimentální dialogové rozhraní pro úpravu templatedata JSON |
Související odkazy
- Extension:TemplateWizard – uživatelské rozhraní pro výběr a vložení wikitextu šablon, na základě jejich TemplateData.
- GitHub: jeblad/TemplateData – alternativní verze s některými funkcemi Lua.
- Přeložitelná šablona
- Wikibase/Maps TemplateData
Toto rozšíření se používá na jednom nebo více projektech Wikimedie. Pravděpodobně to znamená, že rozšíření je stabilní a funguje dostatečně dobře, aby jej mohly používat weby s tak vysokou návštěvností. Vyhledejte tento název rozšíření v konfiguračních souborech CommonSettings.php a InitialiseSettings.php Wikimedie, abyste viděli, kde je nainstalováno. Úplný seznam rozšíření nainstalovaných na konkrétní wiki lze vidět na stránce wiki Special:Version. |
Toto rozšíření je zahrnuto v následujících wiki farmách/hostitelích a/nebo balíčcích: Toto není autoritativní seznam. Některé wiki farmy/hostitelé a/nebo balíčky mohou toto rozšíření obsahovat, i když zde nejsou uvedeny. Pro potvrzení se vždy obraťte na své wiki farmy/hostitele nebo balíček. |
- Extensions bundled with MediaWiki 1.35/cs
- Stable extensions/cs
- Tag extensions/cs
- API extensions/cs
- GPL licensed extensions/cs
- Extensions in Wikimedia version control/cs
- EditPage::showEditForm:fields extensions/cs
- EditPage::showEditForm:initial extensions/cs
- MultiContentSave extensions/cs
- OutputPageBeforeHTML extensions/cs
- ParserFetchTemplateData extensions/cs
- ParserFirstCallInit extensions/cs
- ResourceLoaderRegisterModules extensions/cs
- All extensions/cs
- Extensions used on Wikimedia/cs
- Extensions included in BlueSpice/cs
- Extensions included in Canasta/cs
- Extensions available as Debian packages/cs
- Extensions included in Fandom/cs
- Extensions included in Miraheze/cs
- Extensions included in MyWikis/cs
- Extensions included in ProWiki/cs
- Extensions included in semantic::core/cs
- Extensions included in ShoutWiki/cs
- Extensions included in wiki.gg/cs
- Extensions included in WikiForge/cs
- Metadata/cs