Nápověda:ExpandTemplates
Poznámka: Úpravou této stránky souhlasíte s uvolněním vašeho příspěvku pod licencí CC0. Více informací získáte na stránce nápovědy veřejné domény. Některé starší revize k této stránce byly importovány pod licencí CC BY-SA. Pouze nové příspěvky jsou Publik Domain (PD) (veřejná doména). |
Speciální stránka ExpandTemplates, v české verzi MediaWiki naprosto zvrhle a nelogicky pojmenovaná Speciální:Testy šablon
, je určena pro rekurzivní substituci šablon, parsovacích funkcí a proměnných wikikódu použitého na stránce.
Stránka Special:ExpandTemplates má dvě vstupní pole, jedno pro zadání wikitextu a druhé pro zadání názvu stránky.
V okně "Výsledek" (result) vytváří rozšířený wikitext, tj. šablony, funkce analyzátoru a proměnné jsou rozbalovány rekurzivně. Proměnné v závislosti na názvu stránky jsou rozšířeny na základě dodaného názvu stránky.
Toto je mezivýsledek před vykreslením stránky po uložení nebo stisknutí tlačítka "Náhled" (preview) (nebo je výsledný wikitext odeslán k jinému zpracování), což je užitečné pro pochopení a ladění rozšíření wikitextu.
Nepodporuje substituce (samostatný proces rozšíření [pre-save transformace] se provádí po vstupu do wikitextu v editačním okně a stisknutím "Zobrazit náhled" (show preview) nebo "Uložit" (save), ale před pravidelnou analýzou. Výsledný wikitext lze zkontrolovat v libovolném editačním okně stisknutím "Zobrazit změny" (show changes) nebo uložením testovací stránky a opětovným otevřením editačního okna).
Pokud potřebujete použít substituci, použijte API Parse API místo rozhraní API ExpandTemplates a umožněte předběžné transformace [k tomu nastavte pst
na true
].
Kromě toho je zde oblast náhledu. To však ukazuje vykreslený výsledek opětovného rozšíření rozšířeného wikitextu (T30616). I když je výsledek obvykle stejný jako po jediném rozšíření, může se lišit, pokud první rozšíření vytvoří rovnátka.
Kouzelné slůvko '!' poskytuje způsob, jak povolit "|" v hodnotě parametru funkce šablony nebo syntaktického analyzátoru, zejména pro použití v syntaxi tabulky. Tuto šablonu lze použít s ExpandTemplates k provedení částečné expanze/substituce.
Tabulka s použitím Template:2x ukazuje, že volání s oddělovačem parametrů "|" ve tvaru {{!}} brání běžné expanzi. Poslední sloupec ukazuje oblast náhledu (s výsledkem dvojité expanze).
Použití
původní wikitext | rozšířený wikitext | zobrazení | náhled vytvořený ExpandTemplates |
---|---|---|---|
{{2x|[[MediaWiki]] }}
|
[[MediaWiki]] [[MediaWiki]]
|
MediaWiki MediaWiki | MediaWiki MediaWiki |
{{2x{{!}}[[MediaWiki]] }}
|
{{2x|[[MediaWiki]] }}
| {{2x|MediaWiki }} | MediaWiki MediaWiki |
{{2x{{!{{!}}}}[[MediaWiki]] }}
|
{{2x{{!|}}[[MediaWiki]] }}
| {{2x{{!|}}MediaWiki }} | {{2x|MediaWiki }} |
Odebrání komentářů
Možnost "Odebrat komentáře" (remove comments) určuje, zda budou komentáře odstraněny, a to nejen v konečném výsledku, ale v průběhu procesu rozšiřování. To ovlivní výsledek funkcí analyzátoru: Komentář ve výrazu #expr nebo #ifexpr zobrazí chybovou zprávu, pokud není zapnuto "Odebrat komentáře" a komentáře ovlivňují #if a ifeq.
Příklad:
{{#expr:<!--p-->3}} {{#ifeq:<!--p-->3|3|1|0}} {{#if:<!--p-->|1|0}}
Normální rozšíření a ExpandTemplates s "Odebrat komentáře" na:
3
1
0
Úplné nahrazení a ExpandTemplates s vypnutým "Odebrat komentáře":
Expression error: Unexpected < operator
0
1
Strom analýzy XML
Volitelně je zobrazen strom analýzy XML (reprezentace XML DOM wikitextu, nazývaná také strom dokumentu nebo strom DOM) (viz také Příručka:Preprocessor DOM.php ). Například:
a [[b|c]] {{CURRENTYEAR}} {{{{{a}}}}} {{#ifeq:2|3|a|b}} {{#switch:a|a=3|b=4|a=5}} {{a|b|c=d[[e|f]]g|h}} {{{a|b}}} {{#tag:nowiki|a=b}} {{#tag:nowiki|aeb}}
dává
<root>a [[b|c]]
<template lineStart="1"><title>CURRENTYEAR</title></template>
<template lineStart="1"><title><tplarg><title>a</title></tplarg></title></template>
<template lineStart="1"><title>#ifeq:2</title><part><name index="1"/><value>3</value></part><part><name index="2"/><value>a</value></part><part><name index="3"/><value>b</value></part></template>
<template lineStart="1"><title>#switch:a</title><part><name>a</name>=<value>3</value></part><part><name>b</name>=<value>4</value></part><part><name>a</name>=<value>5</value></part></template>
<template lineStart="1"><title>a</title><part><name index="1"/><value>b</value></part><part><name>c</name>=<value>d[[e|f]]g</value></part><part><name index="2"/><value>h</value></part></template>
<tplarg lineStart="1"><title>a</title><part><name index="1"/><value>b</value></part></tplarg></root>
<template lineStart="1"><title>#tag:nowiki</title><part><name>a</name>=<value>b</value></part></template>
<template lineStart="1"><title>#tag:nowiki</title><part><name index="1"/><value>aeb</value></part></template>
Tento kód:
- Výsledek ukazuje fázi zpracování před vlastním vyhodnocením. Nebyly tedy určeny ani názvy proměnných, funkce parseru a šablony. Také dvojtečka a "#" zatím nejsou detekovány, takže se nerozlišuje mezi proměnnými, funkcemi analyzátoru a šablonami, natož aby se rozlišovalo mezi existujícími a neexistujícími proměnnými, funkcemi analyzátoru a šablonami. Proto:
- Rozlišuje se mezi položkami parametrů s a bez "=". I když u některých položek některých funkcí analyzátoru je to nakonec považováno za prostý text.
- "|a=b|a=c" ještě není redukováno na "|a=c", protože to, že jsou levé strany stejné, se dozvíme až po jejich vyhodnocení, a také proto, že toto zmenšení závisí na vyhodnocení titulku . Například pro tituly ve tvaru
#switch:
.. je "|a=b|a=c" koneckonců ekvivalentní "|a=b".
- Pár dvojitých svislých čar "|" nelze interpretovat jako oddělovač parametrů, ale odkazy se ve stromu samostatně nezobrazují.
Zadání textu do adresy URL
Wikitext sloužící jako vstup lze také vložit do adresy URL, např. pomocí urlencode, {{fullurl:special:ExpandTemplates|wpInput={{urlencode:{{texpr{{!}}abc}}}}}}
dá //www.mediawiki.org/w/index.php?title=Special:ExpandTemplates&wpInput=%7B%7Btexpr%7Cabc%7D%7D.
{{!}}
pomocí {{!}} zabrání rozbalení šablony texpr v URL a také zabrání "|" aby nebyl interpretován jako oddělovač parametru urlencode od falešného druhého parametru.
Může být také použit ve volání šablony bez parametrů, i když ve vstupním poli ExpandTemplates se z toho stane šablona s nepojmenovaným parametrem {{{1}}}, kterým je prázdný řetězec namísto nedefinovaného. Např. {{fullurl:special:ExpandTemplates|wpInput={{tc{{!}}}}}}
.
Toto nefunguje pro proměnné a funkce parseru. Použijte místo toho kódy s procenty pro jeden pár složených závorek (viz wikitext). Pro předponu ParserFunctions "#" použijte %23:
https://www.mediawiki.org/w/index.php?title=Special:ExpandTemplates&wpInput={{CURRENTTIME}}.
https://www.mediawiki.org/w/index.php?title=Special:ExpandTemplates&wpInput={{%23expr:2*3}}.
Příklad
Parametry dotazu
- wpContextTitle=pagetitle
- wpGenerateRawHtml=true
- wpGenerateXml=true
- wpInput=
- wpRemoveComments=true
- wpRemoveNowiki=true
URL:
Přizpůsobení
- Úprava šířky pole
Ve výchozím nastavení je šířka vstupního a výsledkového pole pouze 11 znaků. Možná jej budete chtít změnit na plnou šířku přidáním něčeho podobného do svého CSS:
textarea {
border: 1px solid #2f6fab;
color: Black;
background-color: white;
width: 100%;
padding: 0.1em;
overflow: auto;
}