<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://compusofia.com/w/index.php?action=history&amp;feed=atom&amp;title=Help%3AExpandTemplates%2Fen</id>
	<title>Help:ExpandTemplates/en - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://compusofia.com/w/index.php?action=history&amp;feed=atom&amp;title=Help%3AExpandTemplates%2Fen"/>
	<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=Help:ExpandTemplates/en&amp;action=history"/>
	<updated>2026-04-19T05:40:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://compusofia.com/w/index.php?title=Help:ExpandTemplates/en&amp;diff=11656&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://compusofia.com/w/index.php?title=Help:ExpandTemplates/en&amp;diff=11656&amp;oldid=prev"/>
		<updated>2026-04-17T12:54:07Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
{{PD Help Page|imported=yes}}&lt;br /&gt;
{{Special page}}&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot Expand templates Βικιβιβλία.png|thumb|alt=Screenshot of MediaWiki for translation purposes.|Screenshot of MediaWiki for translation purposes.]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;ExpandTemplates&amp;#039;&amp;#039;&amp;#039; allows for recursive expansion of templates, parser functions and variables.&lt;br /&gt;
&lt;br /&gt;
The page [[Special:ExpandTemplates]] has two input boxes, one to enter wikitext, and another one to enter a pagename.&lt;br /&gt;
It produces in the &amp;quot;Result&amp;quot; window the expanded wikitext, i.e., templates, parser functions and variables are expanded recursively; variables depending on pagename are expanded based on the supplied pagename.&lt;br /&gt;
This is an intermediate result before a page is rendered after saving or pressing &amp;quot;Preview&amp;quot; (or the resulting wikitext is submitted to other processing), helpful in understanding and debugging wikitext expansion.&lt;br /&gt;
It does not support [[Special:MyLanguage/Manual:Substitution|substitution]] (a separate expansion process [&amp;lt;nowiki/&amp;gt;[[Special:MyLanguage/Pre-save transforms|pre-save transformation]]] is carried out after entering wikitext in an edit window and pressing &amp;quot;Show preview&amp;quot; or &amp;quot;Save&amp;quot;, but before regular parsing; the resulting wikitext can be inspected in an arbitrary edit window by pressing &amp;quot;Show changes&amp;quot;, or by saving a test page and reopening the edit window).&lt;br /&gt;
If you need to use substitution, use the parse API instead of the ExpandTemplates API and enable pre-save transformations [to do this, set &amp;lt;code&amp;gt;pst&amp;lt;/code&amp;gt; to &amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot; inline&amp;gt;true&amp;lt;/syntaxhighlight&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
In addition there is a preview area.&lt;br /&gt;
However, this shows the rendered result of expanding the expanded wikitext again ({{task|T30616}}).&lt;br /&gt;
Although the result is usually the same as after single expansion, it can be different if the first expansion produces braces.&lt;br /&gt;
&lt;br /&gt;
The magic word &amp;#039;!&amp;#039; provides a way to allow &amp;quot;|&amp;quot; in a parameter value of a template or parser function, in particular for use in table syntax.&lt;br /&gt;
This template can be used with ExpandTemplates to perform partial expansion/substitution.&lt;br /&gt;
&lt;br /&gt;
The table, using {{timw|2x}}, shows that a call with a parameter separator &amp;quot;|&amp;quot; in the form &amp;lt;nowiki&amp;gt;{{!}}&amp;lt;/nowiki&amp;gt; prevents ordinary expansion; the last column shows the preview area (with the result of double expansion).&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! original wikitext&lt;br /&gt;
! expanded wikitext&lt;br /&gt;
! rendering&lt;br /&gt;
! preview produced by ExpandTemplates&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{2x|[[MediaWiki]] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[MediaWiki]] [[MediaWiki]] &amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{2x|[[MediaWiki]] }}&lt;br /&gt;
| {{2x|[[MediaWiki]] }}&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{2x{{!}}[[MediaWiki]] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{2x|[[MediaWiki]] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;{{2x{{!}}[[MediaWiki]] }}&amp;lt;/td&amp;gt; &amp;lt;!-- use TD tag for correct rendering --&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;{{2x|[[MediaWiki]] }}&amp;lt;/td&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{2x{{!{{!}}}}[[MediaWiki]] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{2x{{!|}}[[MediaWiki]] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;{{2x{{!{{!}}}}[[MediaWiki]] }}&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;{{2x{{!|}}[[MediaWiki]] }}&amp;lt;/td&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Remove comments===&lt;br /&gt;
The &amp;quot;Remove comments&amp;quot; option selects whether comments are removed, not just in the final result but throughout the expansion process.&lt;br /&gt;
This affects the result of parser functions: a comment in the expression of #expr or #ifexpr gives an error message unless &amp;quot;Remove comments&amp;quot; is on, and comments affect #if and ifeq.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{#expr:&amp;lt;!--p--&amp;gt;3}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq:&amp;lt;!--p--&amp;gt;3|3|1|0}}&lt;br /&gt;
&lt;br /&gt;
{{#if:&amp;lt;!--p--&amp;gt;|1|0}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normal expansion, and ExpandTemplates with &amp;quot;Remove comments&amp;quot; on:&lt;br /&gt;
&lt;br /&gt;
{{#expr:&amp;lt;!--p--&amp;gt;3}}&lt;br /&gt;
&lt;br /&gt;
{{#ifeq:&amp;lt;!--p--&amp;gt;3|3|1|0}}&lt;br /&gt;
&lt;br /&gt;
{{#if:&amp;lt;!--p--&amp;gt;|1|0}}&lt;br /&gt;
&lt;br /&gt;
Full substitution, and ExpandTemplates with &amp;quot;Remove comments&amp;quot; off:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;Pfunc_expr_unexpected_operator&amp;quot;&amp;gt;Expression error: Unexpected &amp;amp;lt; operator&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0&lt;br /&gt;
&lt;br /&gt;
1&lt;br /&gt;
&lt;br /&gt;
===XML parse tree===&lt;br /&gt;
Optionally the XML parse tree (the [[w:Document Object Model|XML DOM]] representation of the wikitext, also called document tree or DOM tree) is shown (see also {{ll|Manual:Preprocessor_DOM.php}}).&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;a [[b|c]]&lt;br /&gt;
{{CURRENTYEAR}}&lt;br /&gt;
{{{{{a}}}}}&lt;br /&gt;
{{#ifeq:2|3|a|b}}&lt;br /&gt;
{{#switch:a|a=3|b=4|a=5}}&lt;br /&gt;
{{a|b|c=d[[e|f]]g|h}}&lt;br /&gt;
{{{a|b}}}&lt;br /&gt;
{{#tag:nowiki|a=b}}&lt;br /&gt;
{{#tag:nowiki|aeb}}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;root&amp;gt;a [[b|c]]&lt;br /&gt;
&amp;lt;template lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;CURRENTYEAR&amp;lt;/title&amp;gt;&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;template lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;&amp;lt;tplarg&amp;gt;&amp;lt;title&amp;gt;a&amp;lt;/title&amp;gt;&amp;lt;/tplarg&amp;gt;&amp;lt;/title&amp;gt;&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;template lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;#ifeq:2&amp;lt;/title&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name index=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;value&amp;gt;3&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name index=&amp;quot;2&amp;quot;/&amp;gt;&amp;lt;value&amp;gt;a&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name index=&amp;quot;3&amp;quot;/&amp;gt;&amp;lt;value&amp;gt;b&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;template lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;#switch:a&amp;lt;/title&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name&amp;gt;a&amp;lt;/name&amp;gt;=&amp;lt;value&amp;gt;3&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name&amp;gt;b&amp;lt;/name&amp;gt;=&amp;lt;value&amp;gt;4&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name&amp;gt;a&amp;lt;/name&amp;gt;=&amp;lt;value&amp;gt;5&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;template lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;a&amp;lt;/title&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name index=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;value&amp;gt;b&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name&amp;gt;c&amp;lt;/name&amp;gt;=&amp;lt;value&amp;gt;d[[e|f]]g&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name index=&amp;quot;2&amp;quot;/&amp;gt;&amp;lt;value&amp;gt;h&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;tplarg lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;a&amp;lt;/title&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name index=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;value&amp;gt;b&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;/tplarg&amp;gt;&amp;lt;/root&amp;gt;&lt;br /&gt;
&amp;lt;template lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;#tag:nowiki&amp;lt;/title&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name&amp;gt;a&amp;lt;/name&amp;gt;=&amp;lt;value&amp;gt;b&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;template lineStart=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;title&amp;gt;#tag:nowiki&amp;lt;/title&amp;gt;&amp;lt;part&amp;gt;&amp;lt;name index=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;value&amp;gt;aeb&amp;lt;/value&amp;gt;&amp;lt;/part&amp;gt;&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus:&lt;br /&gt;
*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 &amp;quot;#&amp;quot; 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:&lt;br /&gt;
**Distinction is made between parameter items with and without &amp;quot;=&amp;quot;, even though for some items of some parser functions it is treated as plain text after all.&lt;br /&gt;
**&amp;quot;|a=b|a=c&amp;quot; is not reduced yet to &amp;quot;|a=c&amp;quot; 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 &amp;#039;&amp;#039;title&amp;#039;&amp;#039;. For example, for titles of the form &amp;lt;code&amp;gt;#switch:&amp;lt;/code&amp;gt;.., &amp;quot;|a=b|a=c&amp;quot; is equivalent to &amp;quot;|a=b&amp;quot; after all.&lt;br /&gt;
*A pair of double rectangular brackets shields &amp;quot;|&amp;quot; from being interpreted as a parameter separator, but links are not shown separately in the tree.&lt;br /&gt;
&lt;br /&gt;
===Input text in URL===&lt;br /&gt;
The wikitext serving as input can also be put in the URL, e.g., using [[Special:MyLanguage/Help:URL#URLs_in_external_links|urlencode]], &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{fullurl:special:ExpandTemplates|wpInput={{urlencode:{{texpr{{!}}abc}}}}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; gives {{fullurl:special:ExpandTemplates|wpInput={{urlencode:{{texpr{{!}}abc}}}}}}.&lt;br /&gt;
{{cnw|{|{!}|}|}}, using [[Special:MyLanguage/Help:Extension:ParserFunctions#Escaping_pipe_characters_in_tables|&amp;amp;lcub;&amp;amp;lcub;!&amp;amp;rcub;&amp;amp;rcub;]], prevents the template texpr from expanding in the URL, and also prevents &amp;quot;|&amp;quot; from being interpreted as a separator of the parameter of urlencode from a dummy second parameter.&lt;br /&gt;
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. &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{fullurl:special:ExpandTemplates|wpInput={{tc{{!}}}}}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
This does not work for variables and parser functions, use percent codes for one pair of braces instead (see wikitext); for the ParserFunctions prefix &amp;quot;#&amp;quot; use %23:&lt;br /&gt;
&lt;br /&gt;
{{canonicalurl:special:ExpandTemplates|wpInput={{((}}CURRENTTIME{{))}}}}.&lt;br /&gt;
&lt;br /&gt;
{{canonicalurl:special:ExpandTemplates|wpInput={{((}}%23expr:2*3{{))}}}}.&lt;br /&gt;
====Example====&lt;br /&gt;
&lt;br /&gt;
=====Query parameters=====&lt;br /&gt;
* wpContextTitle=pagetitle&lt;br /&gt;
* wpGenerateRawHtml=true&lt;br /&gt;
* wpGenerateXml=true&lt;br /&gt;
* wpInput=&lt;br /&gt;
* wpRemoveComments=true&lt;br /&gt;
* wpRemoveNowiki=true&lt;br /&gt;
URL:&lt;br /&gt;
*{{canonicalurl:special:ExpandTemplates|wpInput=a&amp;amp;wpRemoveComments=true&amp;amp;wpRemoveNowiki=true&amp;amp;wpGenerateXml=true&amp;amp;wpContextTitle=pagetitle&amp;amp;wpGenerateRawHtml=true}}&lt;br /&gt;
&lt;br /&gt;
== Customizing ==&lt;br /&gt;
;Adjusting the box width&lt;br /&gt;
By default the width of the input and result box is only 11 characters.&lt;br /&gt;
You may want to change this to full width by adding something like the following to your CSS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=css&amp;gt;&lt;br /&gt;
textarea {&lt;br /&gt;
    border: 1px solid #2f6fab;&lt;br /&gt;
    color: Black;&lt;br /&gt;
    background-color: white;&lt;br /&gt;
    width: 100%;&lt;br /&gt;
    padding: 0.1em;&lt;br /&gt;
    overflow: auto;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[m:MediaWiki:Expand templates intro|Introduction into ExpandTemplates]]&lt;br /&gt;
* [[Special:MyLanguage/API:expandtemplates|API:expandtemplates]]&lt;br /&gt;
&lt;br /&gt;
{{Special_page}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Special Pages{{#translation:}}]]&lt;br /&gt;
[[Category:Help{{#translation:}}]]&lt;/div&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
</feed>