Template:Template demo: Difference between revisions

From bg3.wiki
Jump to navigation Jump to search
(Added (incomplete) support for example captions)
mNo edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly>{{#vardefine: i | 1 }}{{#switch:{{{style|table}}}
<includeonly>{{#lvardef: i | 1 }}{{#switch:{{{style|table}}}
| table = <table class="wikitable">
| table = <table class="wikitable">
<tr>
<tr>
<!-- TODO: Improve the logic for determining if the table should have a caption column -->
{{#if: {{{caption 1|}}}|<th>Example</th>}}
<th>Markup</th>
<th>Markup</th>
<th>Renders as</th>
<th>Renders as</th>
</tr>
</tr>
{{#while:
{{#while:
| {{{{{#var: i }} |}}}
| {{{{{#lvar: i }} |}}}
| <tr><td>{{Demo|sep=</td><td>|nocat=yes|tag=pre|style=margin:0px;border:0px;|{{trim|{{{ {{#var: i}} }}}}}}}</td></tr>
| <tr>
{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }}
{{#if:{{{caption {{#lvar: i }}|}}}|<th>{{{caption {{#lvar: i }}|}}}</th>}}
<td>{{Demo|sep=</td><td>|nocat=yes|tag=pre|style=margin:0px;border:0px;|{{trim|{{{ {{#lvar: i}} }}}}}}}</td>
</tr>
{{#lvardef: i | {{#expr: {{#lvar: i }} + 1 }} }}
}}</table>
}}</table>
| list = {{#while:
| list = {{#while:
| {{{{{#var: i }} |}}}
| {{{{{#lvar: i }} |}}}
| <div class="bg3wiki-tooltip-box>{{#if:{{{caption {{#var: i}}|}}}|{{{caption {{#var: i}}|}}}<br>}}'''Markup'''{{Demo|sep='''Renders as<br>'''|nocat=yes|style=margin-top:0px;|tag=pre|{{trim|{{{ {{#var: i}} }}}}}}}</div>
| <div class="bg3wiki-tooltip-box>{{#if:{{{caption {{#lvar: i}}|}}}|<p>{{{caption {{#lvar: i}}|}}}</p>}}'''Markup'''{{Demo|sep='''Renders as<br>'''|nocat=yes|style=margin-top:0px;|tag=pre|{{trim|{{{ {{#lvar: i}} }}}}}}}</div>
{{#vardefine: i | {{#expr: {{#var: i }} + 1 }} }}
{{#lvardef: i | {{#expr: {{#lvar: i }} + 1 }} }}
}}
}}
| #default = Unknown style option <code>{{{style|}}}</code>. Expected <code>table</code> (default) or <code>list</code>.
| #default = Unknown style option <code>{{{style|}}}</code>. Expected <code>table</code> (default) or <code>list</code>.
Line 22: Line 27:
This template has two styles: a two-column table (<code>style = table</code>) and a list (<code>style = list</code>). The table is appropriate for shorter, inline templates. For larger templates, the list style may be preferred.
This template has two styles: a two-column table (<code>style = table</code>) and a list (<code>style = list</code>). The table is appropriate for shorter, inline templates. For larger templates, the list style may be preferred.


As with [https://en.wikipedia.org/wiki/Template:Demo Template:Demo on Wikipedia], the arguments to this template {{em|must}} be wrapped in <code><nowiki><nowiki>...</nowiki</nowiki><nowiki>></nowiki></code> tags or the parameters with be expanded before being passed to this template.
As with {{Wikipedia|Template:Demo}}, the arguments to this template {{em|must}} be wrapped in <code><nowiki><nowiki>...</nowiki</nowiki><nowiki>></nowiki></code> tags or the parameters will be expanded before being passed to this template.


== Examples ==
== Examples ==
Line 45: Line 50:
| <nowiki>{{DamageText|2d4 + 1|Fire}}</nowiki>
| <nowiki>{{DamageText|2d4 + 1|Fire}}</nowiki>
| <nowiki>{{RarityItem|Hat of Fire Acuity}}</nowiki>
| <nowiki>{{RarityItem|Hat of Fire Acuity}}</nowiki>
| <nowiki>{{SAI|Fireball}}</nowiki>
}}
=== Table style with captions ===
If you want to add captions to the examples, you can do so with {{c|caption <number>}} parameters. This switches to a 3 column layout.
==== Input ====
<!-- Can't recursively use this template to demo itself. Sad --->
<pre>
{{Template demo
| style = table
| caption 1 = CharLink demo
| &lt;nowiki>{{CharLink|Shadowheart}}</nowiki>
| caption 2 = DamageText demo
| &lt;nowiki>{{DamageText|2d4 + 1|Fire}}</nowiki>
| caption 3 = RarityItem demo
| &lt;nowiki>{{RarityItem|Hat of Fire Acuity}}</nowiki>
| caption 4 = SAI demo
| &lt;nowiki>{{SAI|Fireball}}</nowiki>
}}
</pre>
==== Output ====
{{Template demo
| style = table
| caption 1 = CharLink demo
| <nowiki>{{CharLink|Shadowheart}}</nowiki>
| caption 2 = DamageText demo
| <nowiki>{{DamageText|2d4 + 1|Fire}}</nowiki>
| caption 3 = RarityItem demo
| <nowiki>{{RarityItem|Hat of Fire Acuity}}</nowiki>
| caption 4 = SAI demo
| <nowiki>{{SAI|Fireball}}</nowiki>
| <nowiki>{{SAI|Fireball}}</nowiki>
}}
}}


=== List style ===
=== List style ===
Select this style with <code>style = list</code>. This should be used to demo templates too large to fit within a table.
Select this style with <code>style = list</code>. This should be used to demo templates too large to fit within a table. You can also optionally caption the examples as with the table style.
<!-- Can't recursively use this template to demo itself. Sad --->
<!-- Can't recursively use this template to demo itself. Sad --->
==== Input ====
==== Input ====
Line 62: Line 98:
}}
}}
</nowiki>
</nowiki>
| caption 2 = This example demonstrates many of the optional style parameters.
| &lt;nowiki>
| &lt;nowiki>
{{Quote fancy
{{Quote fancy
Line 85: Line 122:
}}
}}
</nowiki>
</nowiki>
| caption 2 = You can optionally add additional context or information to examples with {{c|caption <number>}} parameters.
| caption 2 = This example demonstrates many of the optional style parameters.
| <nowiki>
| <nowiki>
{{Quote fancy
{{Quote fancy
Line 127: Line 164:
         "caption 1": {
         "caption 1": {
"label": "Example 1 caption",
"label": "Example 1 caption",
"description": "An additional caption or title for the example if you want to add additional context. Currently, only the list style format supports captions.",
"description": "An additional caption or title for the example if you want to add additional context.",
             "example": "This example demos the {{c|style}} optional parameter.",
             "example": "This example demos the {{c|style}} optional parameter.",
             "type": "string",
             "type": "string",
Line 134: Line 171:
         "caption 2": {
         "caption 2": {
"label": "Example 2 caption",
"label": "Example 2 caption",
"description": "An additional caption or title for the example if you want to add additional context. Currently, only the list style format supports captions.",
"description": "An additional caption or title for the example if you want to add additional context.",
             "example": "This example demos the {{c|style}} optional parameter.",
             "example": "This example demos the {{c|style}} optional parameter.",
             "type": "string",
             "type": "string",
Line 141: Line 178:
         "caption 3": {
         "caption 3": {
"label": "And so on...",
"label": "And so on...",
"description": "An additional caption or title for the example if you want to add additional context. Currently, only the list style format supports captions.",
"description": "An additional caption or title for the example if you want to add additional context.",
             "example": "This example demos the {{c|style}} optional parameter.",
             "example": "This example demos the {{c|style}} optional parameter.",
             "type": "string",
             "type": "string",

Latest revision as of 01:32, 5 November 2024

Template documentation

This template is designed to easily demo template usage and is intended for use within template documentation pages. It lets you display a set of template examples with the markup and rendered output displayed side-by-side.

Usage

This template has two styles: a two-column table (style = table) and a list (style = list). The table is appropriate for shorter, inline templates. For larger templates, the list style may be preferred.

As with Template:Demo, the arguments to this template must be wrapped in <nowiki>...</nowiki> tags or the parameters will be expanded before being passed to this template.

Examples

Table style

Select this style with style = table. It is also the default style used if the optional style parameter is omitted. This style should be used for shorter, inline templates that can fit nicely within a two-column table.

Input

{{Template demo
| style = table
| <nowiki>{{CharLink|Shadowheart}}</nowiki>
| <nowiki>{{DamageText|2d4 + 1|Fire}}</nowiki>
| <nowiki>{{RarityItem|Hat of Fire Acuity}}</nowiki>
| <nowiki>{{SAI|Fireball}}</nowiki>
}}

Output

Markup Renders as
{{CharLink|Shadowheart}}
Shadowheart Shadowheart
{{DamageText|2d4 + 1|Fire}}
2d4 + 1Damage TypesFire
{{RarityItem|Hat of Fire Acuity}}
Hat of Fire Acuity
{{SAI|Fireball}}
Fireball Fireball

Table style with captions

If you want to add captions to the examples, you can do so with caption <number> parameters. This switches to a 3 column layout.

Input

{{Template demo
| style = table
| caption 1 = CharLink demo
| <nowiki>{{CharLink|Shadowheart}}</nowiki>
| caption 2 = DamageText demo
| <nowiki>{{DamageText|2d4 + 1|Fire}}</nowiki>
| caption 3 = RarityItem demo
| <nowiki>{{RarityItem|Hat of Fire Acuity}}</nowiki>
| caption 4 = SAI demo
| <nowiki>{{SAI|Fireball}}</nowiki>
}}

Output

Example Markup Renders as
CharLink demo
{{CharLink|Shadowheart}}
Shadowheart Shadowheart
DamageText demo
{{DamageText|2d4 + 1|Fire}}
2d4 + 1Damage TypesFire
RarityItem demo
{{RarityItem|Hat of Fire Acuity}}
Hat of Fire Acuity
SAI demo
{{SAI|Fireball}}
Fireball Fireball

List style

Select this style with style = list. This should be used to demo templates too large to fit within a table. You can also optionally caption the examples as with the table style.

Input

{{Template demo
| style = list
| <nowiki>
{{Quote fancy
| quote = The operations of these huge steel juggernauts are powered by engines of churning hellfire.
| image = Portrait Steel Watcher.png
| link = Adamantine Golem
}}
</nowiki>
| caption 2 = This example demonstrates many of the optional style parameters.
| <nowiki>
{{Quote fancy
| quote = These levitating eyes transmit all that they see to the one who created them.
| image = Portrait Scrying Eye.png
| link = Scrying Eye
| height = 60px
| rounding = 20%
| font-size = 100%
}}
</nowiki>
}}

Output

Markup
{{Quote fancy
| quote = The operations of these huge steel juggernauts are powered by engines of churning hellfire.
| image = Portrait Steel Watcher.png
| link = Adamantine Golem
}}
Renders as
Portrait Steel Watcher.png
The operations of these huge steel juggernauts are powered by engines of churning hellfire.

This example demonstrates many of the optional style parameters.

Markup
{{Quote fancy
| quote = These levitating eyes transmit all that they see to the one who created them.
| image = Portrait Scrying Eye.png
| link = Scrying Eye
| height = 60px
| rounding = 20%
| font-size = 100%
}}
Renders as
Portrait Scrying Eye.png
These levitating eyes transmit all that they see to the one who created them.

Template data

Display a list of template examples that displays the source wikitext and rendered result side-by-side. The template supports an arbitrary number of examples as unnamed arguments.

Template parameters

This template prefers block formatting of parameters.

ParameterDescriptionTypeStatus
Example 11

Example markup/wikitext to demo. This parameter must be surrounded by <nowiki> tags to work correctly.

Example
<nowiki>{{SAI|Fire Bolt}}</nowiki>
Contentoptional
Example 22

Example markup/wikitext to demo. This parameter must be surrounded by <nowiki> tags to work correctly.

Example
<nowiki>{{SAI|Fire Bolt}}</nowiki>
Contentoptional
And so on...3

Example markup/wikitext to demo. This parameter must be surrounded by <nowiki> tags to work correctly.

Example
<nowiki>{{SAI|Fire Bolt}}</nowiki>
Contentoptional
Example 1 captioncaption 1

An additional caption or title for the example if you want to add additional context.

Example
This example demos the {{c|style}} optional parameter.
Stringoptional
Example 2 captioncaption 2

An additional caption or title for the example if you want to add additional context.

Example
This example demos the {{c|style}} optional parameter.
Stringoptional
And so on...caption 3

An additional caption or title for the example if you want to add additional context.

Example
This example demos the {{c|style}} optional parameter.
Stringoptional
Stylestyle

Select the layout style appropriate for the template being demoed.

Suggested values
table list
Default
table
Stringoptional