Open main menu
Documentation icon Template documentation[view] [edit] [history] [purge]

This template is used to present markup or code side by side with the output it renders.


Each cell in the first ("Markup") column uses <pre> to retain newlines and spaces but styled to allow content to wrap within it. It is usually desirable to escape the content of these cells so that the markup is displayed by wrapping the markup in <nowiki>. It is technically not possible to add this feature to the template.

Each cell in the second ("Renders as") column is usually the unescaped markup copied from the corresponding "Markup" cell before it. There are instances where this may differ:

  • If the first line includes wikimarkup that must start on a new line such as #, * or ; then use <nowiki /> before the first line; see examples below.
  • Header markup such as == will show in the page table of contents; use {{fake heading}}.
  • Some templates will place the page in a maintenance category, which is usually undesired:
  • Some templates may have error checking that places the page in a maintenance category. Suppress the category as possible:
    • Citation Style 1 templates can suppress the maintenance category by setting |template doc demo=true.



If you don't wrap the content of the markup cell in <nowiki>, then any template markup will not be escaped, it will be expanded.

This example shows the markup for {{tl|tag}}:

Renders as [[:Template: Expected renderingTemplate:For loop

HTML entitiesEdit

HTML entities are parsed in the markup cell:

Nowikied markup shows as [[:Template: Expected markupTemplate:For loop

To work around this, replace the & with &amp; thus &amp;nbsp; will show as &nbsp;



Markup [[:Template: Renders asTemplate:For loop

Short cutEdit

See Template:Mra.

Enter this:

{{subst:mra|'''Bold text'''|''Italic text''}}

To make this:

<nowiki>'''Bold text'''</nowiki>|'''Bold text'''|
<nowiki>''Italic text''</nowiki>|''Italic text''}}

Which renders as:

Markup [[:Template: Renders asTemplate:For loop

More complexEdit

Note that Template:Tl2's second argument here uses Template:Tl2 and Template:Tl2.

Markup [[:Template: Renders asTemplate:For loop

Multiple rowsEdit

Markup [[:Template: Renders asTemplate:For loop

With titleEdit

Foxes and dogs
Markup [[:Template: Renders asTemplate:For loop

Showing rendered HTMLEdit

When a template is enclosed within {{code}}, it shows the rendered HTML:

Markup [[:Template: Renders asTemplate:For loop

See alsoEdit

  • {{Markup2}} for bulleted and indented markup.
  • {{Markupv}} for the vertical presentation (above/below) of markup/code and its output.
  • {{Automarkup}} does not require to write the code samples twice.


This is the TemplateData documentation for this template used by VisualEditor and other tools; see the monthly error report for this template.

TemplateData for Markup

<templatedata> { "description": " ", "paramOrder": [ "margin-left", "width", "style", "noheaders", "title", "colheaderstyle", "col1headerstyle", "col1", "col2headerstyle", "col2", "codestyle", "outputstyle", "1", "2", "3", "4", "39", "40" ], "params": { "1": { "description": "row 1, first column (markup/code)'s content.", "type": "string" }, "2": { "description": "row 1, second column (output)'s content.", "type": "string" }, "3": { "description": "row 2, first column's content (etc).", "type": "string" }, "4": { "description": "row 2, second column's content (etc).", "type": "string" }, "39": { "description": "First column's content in last possible row.", "type": "string" }, "40": { "description": "Second column's content in last possible row.", "type": "string" }, "width": { "description": "To set the table's overall width.", "type": "string", "default": "100%" }, "margin-left": { "description": "To set a margin on the table's lefthand side.", "type": "string", "default": "0" }, "style": { "description": "For CSS styles amending the table's overall appearance.", "type": "string" }, "title": { "description": "Title above table.", "type": "string" }, "noheaders": { "description": "Set (as e.g. noheaders=on) to suppress the columns' headings and table's title.", "type": "string" }, "col1": { "description": "First column (markup/code)'s heading.", "type": "string", "default": "\"Markup\"" }, "col2": { "description": "Second column (output)'s heading.", "type": "string", "default": "\"Renders as\"" }, "codestyle": { "description": "For CSS styles amending the presentation of the first column (markup/code)'s content (e.g. a smaller font-size).", "type": "string", "aliases": [ "markupstyle" ] }, "outputstyle": { "description": "For CSS styles amending the presentation of the second column (output)'s content.", "type": "string" }, "col1headerstyle": { "description": "For CSS styling to amend the appearance of the first column's heading. Overrides (but does not replace) colheaderstyle.", "type": "string" }, "col2headerstyle": { "description": "For CSS styling to amend the appearance of the second column's heading. Overrides (but does not replace) colheaderstyle.", "type": "string" }, "colheaderstyle": { "description": "For CSS styling to amend the appearance of each column's heading.", "type": "string" } } } </templatedata>