Jump to content

Nápověda:ExpandTemplates

From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Help:ExpandTemplates and the translation is 100% complete.
PD 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).
PD
Screenshot of MediaWiki for translation purposes.
Snímek obrazovky MediaWiki pro účely překladu.

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 (úkol 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;
}

Související odkazy