Help:ExpandTemplates

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Help:ExpandTemplates and the translation is 70% complete.

Other languages:
English • ‎Türkçe • ‎français • ‎فارسی • ‎中文 • ‎日本語 • ‎한국어
Screenshot Expand templates Βικιβιβλία.png

ExpandTemplates permet l'expansion de manière récursive des modèles, des fonctions d'analyses et des variables.

La page Special:ExpandTemplates possède deux boîtes de saisie, l'une pour y placer le texte wiki, et l'autre pour y entrer un nom de page. Dans la fenêtre Résultat le texte wiki expansé est fourni, c'est à dire que les modèles, les fonctions d'analyse et les variables sont tous développés de manière récursive; les variables qui dépendent d'un nom de page sont développées en se basant sur le nom de page fourni. Ceci est un résultat intermédiaire avant qu'une page ne soit générée après avoir été enregistrée ou que le bouton "Preview" n'ait été pressé pour obtenir un aperçu (ou que le texte wiki résultant ne soit soumis à un autre processus), ce qui est utile pour comprendre et pour déboguer l'expansion du texte wiki. La substitution n'est pas prise en charge (un processus séparé d'expansion démarré en priorité après avoir entré le texte wiki dans une fenêtre d'éditeur et avoir pressé "Prévisualiser" ou "Enregistrer"; le texte wiki résultat peut être analysé dans une fenêtre d'édition arbiraire en pressant "Voir les modifications", ou en enregistrant une page de test et en réouvrant la fenêtre d'édition).

En plus, il y a une zone d'aperçu. Néanmoins, ceci montre le résultat mis en forme du de l'expansion du contenu expansé du texte wiki une nouvelle fois (T30616). Bien que le résultat soit habituellement le même qu'après une simple expansion, il peut être différent si la première passe fait apparaitre des accolades '{' '}'.

Le mot magique '!' fournit une manière d'autoriser "|" dans une valeur de paramètre pour un modèle ou une fonction d'analyse, en particulier pour son utilisation dans la syntaxe des tableaux. Ce modèle peut être utilisé avec ExpandTemplates pour réaliser l'expansion ou la substitution partielle.

Le tableau, en utilisant Template:2x, montre qu'un appel avec un séparateur de paramètres "|" dans le formulaire {{!}} empêche l'expansion ordinaire; la dernière colonne montre la zone d'aperçu (avec le résultat de la double expansion).

Utilisation

original wikitextexpanded wikitextrenderingpreview produced by 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 }}

Remove comments

The "Remove comments" option selects whether comments are removed, not just in the final result but throughout the expansion process. This affects the result of parser functions: a comment in the expression of #expr or #ifexpr gives an error message unless "Remove comments" is on, and comments affect #if and ifeq.

Example:

{{#expr:<!--p-->3}}

{{#ifeq:<!--p-->3|3|1|0}}

{{#if:<!--p-->|1|0}}

Normal expansion, and ExpandTemplates with "Remove comments" on:

3

1

0

Full substitution, and ExpandTemplates with "Remove comments" off:

Expression error: Unexpected < operator

0

1

XML parse tree

Optionally the XML parse tree (the XML DOM representation of the wikitext, also called document tree or DOM tree) is shown (see also Manual:Preprocessor_DOM.php). For example:

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}}

gives

<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>

Thus:

  • The result shows a stage in processing before actual evaluation. Thus even names of variables, parser functions, and templates have not been determined. Also, the colon and "#" are not detected yet, so no distinction is made between variables, parser functions, and templates, let alone that there would be distinction between existing and non-existing variables, parser functions, and templates. Therefore:
    • Distinction is made between parameter items with and without "=", even though for some items of some parser functions it is treated as plain text after all.
    • "|a=b|a=c" is not reduced yet to "|a=c" because the fact that the left sides are equal is only known after their evaluation, and also because this reduction depends on the evaluation of title. For example, for titles of the form #switch:.., "|a=b|a=c" is equivalent to "|a=b" after all.
  • A pair of double rectangular brackets shields "|" from being interpreted as a parameter separator, but links are not shown separately in the tree.

Input text in URL

The wikitext serving as input can also be put in the URL, e.g., using urlencode, {{fullurl:special:ExpandTemplates|wpInput={{urlencode:{{texpr{{!}}abc}}}}}} gives //www.mediawiki.org/w/index.php?title=Special:ExpandTemplates&wpInput=%7B%7Btexpr%7Cabc%7D%7D. {{!}}, using Template:!, prevents the template texpr from expanding in the URL, and also prevents "|" from being interpreted as a separator of the parameter of urlencode from a dummy second parameter. It can also be used in a template call without parameters, albeit that in the input box of ExpandTemplates this becomes a template with unnamed parameter {{{1}}} being the empty string instead of undefined; e.g. {{fullurl:special:ExpandTemplates|wpInput={{tc{{!}}}}}}. This does not work for variables and parser functions, use percent codes for one pair of braces instead (see wikitext); for the ParserFunctions prefix "#" use %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}}.

Example

Query parameters
  • wpRemoveComments=true
  • wpRemoveNowiki=true
  • wpGenerateXml=true
  • wpContextTitle=pagetitle
  • wpGenerateRawHtml=true

URL:

Customizing

Adjusting the box width

By default the width of the input and result box is only 11 characters. You may want to change this to full width by adding something like the following to your CSS:

textarea {
    border: 1px solid #2f6fab;
    color: Black;
    background-color: white;
    width: 100%;
    padding: 0.1em;
    overflow: auto;
}

Voir aussi

Page spéciales - Aide Diff Lien permanent Fusion des historiques Nouveaux fichiers Nouvelles pages Préférences Page au hasard Modifications récentes Restaurer Liste de suivi ExpandTemplates ApiSandbox