Template:Demo
|  | This template uses Lua: | 
This template simply places template code (or any other code) in a <syntaxhighlight lang="wikitext">...</syntaxhighlight> tag and then places the rendering of that code below it. The template's skeleton is:
{{demo|<nowiki>{{your template}}</nowiki>}}
| Template call (m for magic word) | Output (delayed interpretation as wikimarkup) | HTML alternative (never interpreted as wikimarkup) | 
|---|---|---|
| {{!}}(m) | | | |or {{pipe}} | 
| {{=}}(m) | = | = | 
| {{!!}} | || | || | 
| {{!(}} | [ | [ | 
| {{)!}} | ] | ] | 
| {{!((}} | [[ | [[ | 
| {{))!}} | ]] | ]] | 
| {{(}} | { | { | 
| {{)}} | } | } | 
| {{((}} | {{ | {{ | 
| {{))}} | }} | }} | 
| {{(((}} | {{{ | {{{ | 
| {{)))}} | }}} | }}} | 
| {{(!}} | {| | {| | 
| {{!+}} | |+ | |+ | 
| {{!-}} | |- | |- | 
| {{!)}} | |} | |} | 
| IMPORTANT: Use escape templates (see the table on the right) to replace code so it is not parsed in the preprocessor or pre-save transform. Alternatively, wrap <nowiki>...</nowiki>tags around the code (or use {{escape}}, which has a demo-escape example). | 
Failure to wrap <nowiki>...</nowiki> tags around the source may cause the source to be executed before it reaches this template.
{{demo|{{fail}}}} produces:
<big style="color:#DF0A24; font-size:1.4em;">✗</big> '''Fail'''
Pre style
Set |style= to add any CSS text to the <pre>...</pre> tag.
For example, {{demo|style=margin-left: 1.6em;|<nowiki>{{done}}</nowiki>}} will produce:
{{done}}
 Done
 Done
Separator
You can change the separator between the <syntaxhighlight> and the template by setting the |sep= parameter.
{{demo|sep=produces|<nowiki>{{done}}</nowiki>}}
{{done}}
 Done
 Done
You may use |sep=<td> can make the demonstration fit in a table:
| {{done}}
 |  Done | 
Instead of using |sep=, you can also specify the number of line breaks between the code and the template in the |br= parameter.
Reverse order
Use |reverse=1 to show the code snippet and the result in reverse order:
{{demo|reverse=1|<nowiki>{{tl|template}}</nowiki>}}
will produce
{{template}}{{tl|template}}
Category removal
For templates that add categories (e.g. {{Asbox}}), set |nocat= (or |demo_kill_categories=) to anything to prevent them from showing up in the output:
{{Asbox
| image = Østfold_våpen.svg
| pix = 30
| subject = [[Østfold]] location
| name = Template:Østfold-geo-stub
| category = Østfold geography stubs
| tempsort = *
}}
Module
If the template used is based on Lua, you can pass args directly to the demonstrated module by invoking Module:Demo like so: (this would reduce server stress)
{{#invoke:Demo|module|demo_module=RoundN|demo_module_func=N2|demo_template=Round2
|bold_winner=high
|May 1|Team A|1|Team B|2
}}
{{Round2
|bold_winner=high
|May 1|Team A|1|Team B|2
}}
| Final | ||
| May 1 | ||
| Team A | 1 | |
| Team B | 2 | |
Note: It will attempt to preserve line breaks for unnamed params, but such is impossible for named params since those are stripped of whitespace/order before being passed to the module. Also note, you should use |demo_sep= instead of |sep= (all args you don't want being passed should be prefixed with demo_ if not already)
TemplateData
TemplateData for Demo
This template takes wikitext and displays it in syntax highlighting and displays the rendering of the wikitext below.
| Parameter | Description | Type | Status | |
|---|---|---|---|---|
| Content | 1 | must be wrapped in <nowiki> | Unknown | optional | 
| sep | sep | Number of line breaks, or wikitext to fill in as the linebreak | Unknown | optional | 
| nocat | nocatdemo_kill_categories | no description | Boolean | optional | 
| result_arg | result_arg | no description | Unknown | optional | 
| <syntaxhighlight> style | style  | no description | Unknown | optional | 
| Reverse order | reverse | Show the code snippet and the result in reverse order 
 | Boolean | optional | 
See also
- {{Demo-inline}}, for an inline version of this template
- {{Escape}} - which has an example of this template without nowiki tags
- {{Nowiki template demo}} which uses Module:Template test case
- {{Automarkup}} which uses Module:Automarkup
Other formatting templates
| Code example | Effect | Notes | 
|---|---|---|
| {{Tj|Hatnote|Some text|selfref: yes|category: no|lang: fr}} | Supports colors, placeholder texts, named and unnamed parameters | |
| <syntaxhighlight lang="wikitext">
{{Hatnote
   | Some text
   | selfref = yes
   | category = no
   | lang = fr
}}
</syntaxhighlight>
 | {{Hatnote
    | Some text
    | selfref = yes
    | category = no
    | lang = fr
}}
 | Same as above | 
| {{Tji|Hatnote|Some text|selfref: yes|category: no|lang: fr}} | {{Hatnote | Supports colors, placeholder texts, named and unnamed parameters | 
|  | {{Hatnote|Some text|selfref=yes|category=no|lang=fr}} | Same as above | 
| {{tl2|Hatnote|lang=fr}} | {{hatnote}} | Supports linking to sister projects (e.g., fr:Hatnote) | 
| {{demo|<nowiki>{{Hatnote|Some text}}</nowiki>}} | {{hatnote|Some text}}
 | Shows code and example | 
| {{tln|Hatnote}} | Template:Hatnote | Produces a normal link to the template | 
| {{elc|Template:Example}}{{elc|Template:Example|Text|suffix}} | [[Template:Example]][[Template:Example|Text]]suffix | Shows how wikilink would be entered in wiki markup, with optional link text and suffix | 
| {{ml|Example|hello}} | {{#invoke:Example|hello}} | Counterpart to {{tl}} for linking to Lua modules | 
| {{mfl|Example|hello}} | {{#invoke:Example|hello}} | Similar to {{ml}}, but expects the function to be documented and creates a link to the corresponding section | 
| {{mlx|Example|hello}} | {{#invoke:Example|hello}} | Counterpart to {{tlx}} for linking to Lua modules | 
| {{ml-lua|Module:Example}} | require('Module:Example') | Link to Lua modules and built-in libraries, showing Lua code. | 
| {{para|title|<var>book title</var>}} | |title=book title | Formats template parameters for display, with or without values | 
| {{sclx|LASTING}} | [[WP:LASTING]] | Takes a shortcut suffix in project namespace and displays it with brackets and the WP: alias in a <code>...</code>tag. | 
| {{tag|ref}}{{xtag|templatedata}} | <ref>...</ref><templatedata> | Formats [X]HTML tags; can add content, choose opening, closing, or self-closing | 
| {{dtl|Ping project}} | {{d:Ping project}} | Wikidata counterpart to {{tl}} | 
| {{mwl|#if}}{{mwl|#if|{{{1}}}|true|false}} | {{#if}} {{#if:{{{1}}}|true|false}} | Magic word links | 
| {{pf|if}}{{pf|if|{{{1}}}|true|false}} | {{#if}} {{#if:{{{1}}}|true|false}} | Parser function equivalent to {{tl}} | 
| {{magic word|uc:}} | {{uc:}} | Magic word links | 
 
	

