Difference between revisions of "Template:Color Icons"
(6 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
The first parameter is a sequence of upper-case letters from the set WUBRGCL. | The first parameter is a sequence of upper-case letters from the set WUBRGCL. | ||
− | The second parameter (optional) is the size of the icons (default = | + | The second parameter (optional) is the size of the icons (default = 14). |
The third parameter (optional) is a wiki link for each icon (default: Mana). | The third parameter (optional) is a wiki link for each icon (default: Mana). | ||
Line 11: | Line 11: | ||
The fourth parameter (optional) is hover text for each icon (default: the full name of the color). | The fourth parameter (optional) is hover text for each icon (default: the full name of the color). | ||
− | The named "sep" parameter (optional) is the separator between icons. (Default: | + | The named "sep" parameter (optional) is the separator between icons. (Default: '') |
+ | |||
+ | The named "noinline" parameter (optional) is a flag which skips inlining on the color icons if present. (Default: '') | ||
+ | |||
+ | The named "skipnowrap" parameter (optional) is a flag which skips the nowrap action on the color icons if present. (Default: '') | ||
+ | |||
==Example== | ==Example== | ||
The following mark-up: | The following mark-up: | ||
<pre><nowiki> | <pre><nowiki> | ||
− | {{Color Icons|UBR|24}} | + | {{Color Icons|UBR} |
+ | {{Color Icons|UBR|24|sep=&thinsp;}} | ||
</nowiki></pre> | </nowiki></pre> | ||
Produces: | Produces: | ||
− | {{Color Icons|UBR|24}} | + | {{Color Icons|UBR}} |
+ | |||
+ | {{Color Icons|UBR|24|sep= }} | ||
+ | |||
+ | == Implementation details == | ||
+ | The following optimisations are applied to reduce output html size: | ||
+ | * Apply the inline span to the whole set of icons rather than each icon individually | ||
+ | * Skip the "nowrap" span if a single icon is produced | ||
+ | |||
+ | These optimisations are necessary to avoid a "Pages where template include size is exceeded" error on some large pages (e.g. elite pack contents pages). | ||
[[Category:Symbol templates]] | [[Category:Symbol templates]] | ||
</noinclude><includeonly>{{#ifeq:{{#invoke:String|sub|{{{1}}}|1|1}}|[||<!-- | </noinclude><includeonly>{{#ifeq:{{#invoke:String|sub|{{{1}}}|1|1}}|[||<!-- | ||
− | -->{{nowrap|{{Symbol|{{#invoke:String|sub|{{{1}}}|1|1}}|{{{2| | + | -->{{Inline|{{nowrap|<!-- |
− | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 1|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep| | + | -->{{Symbol|{{#invoke:String|sub|{{{1}}}|1|1}}|{{{2|14}}}|{{{3|}}}|{{{4|}}}|noinline=1}}<!-- |
− | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 2|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep| | + | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 1|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep|}}}</span>|{{{sep|}}}}}]]|{{{sep|}}}}}<!-- |
− | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 3|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep| | + | -->{{Symbol|{{#invoke:String|sub|{{{1}}}|2|2}}|{{{2|14}}}|{{{3|}}}|{{{4|}}}|noinline=1}}}}<!-- |
− | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 4|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep| | + | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 2|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep|}}}</span>|{{{sep|}}}}}]]|{{{sep|}}}}}<!-- |
− | -->}}}}</includeonly> | + | -->{{Symbol|{{#invoke:String|sub|{{{1}}}|3|3}}|{{{2|14}}}|{{{3|}}}|{{{4|}}}|noinline=1}}}}<!-- |
+ | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 3|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep|}}}</span>|{{{sep|}}}}}]]|{{{sep|}}}}}<!-- | ||
+ | -->{{Symbol|{{#invoke:String|sub|{{{1}}}|4|4}}|{{{2|14}}}|{{{3|}}}|{{{4|}}}|noinline=1}}}}<!-- | ||
+ | -->{{#ifexpr:{{#invoke:String|len|{{{1}}}}} > 4|{{#if:{{{3|}}}|[[{{{3}}}|{{#if:{{{4|}}}|<span title="{{{4|}}}">{{{sep|}}}</span>|{{{sep|}}}}}]]|{{{sep|}}}}}<!-- | ||
+ | -->{{Symbol|{{#invoke:String|sub|{{{1}}}|5|5}}|{{{2|14}}}|{{{3|}}}|{{{4|}}}|noinline=1}}}}<!-- | ||
+ | -->|{{#ifeq:{{#invoke:String|len|{{{1}}}}}|1|1}}{{{skipnowrap|}}}}}|{{{noinline|}}}}}}}</includeonly> |
Latest revision as of 10:22, 13 May 2020
Usage
Given a string of 1 to 5 letters representing colors, produces a corresponding series of space-separated color icons.
The first parameter is a sequence of upper-case letters from the set WUBRGCL.
The second parameter (optional) is the size of the icons (default = 14).
The third parameter (optional) is a wiki link for each icon (default: Mana).
The fourth parameter (optional) is hover text for each icon (default: the full name of the color).
The named "sep" parameter (optional) is the separator between icons. (Default: )
The named "noinline" parameter (optional) is a flag which skips inlining on the color icons if present. (Default: )
The named "skipnowrap" parameter (optional) is a flag which skips the nowrap action on the color icons if present. (Default: )
Example
The following mark-up:
{{Color Icons|UBR} {{Color Icons|UBR|24|sep= }}
Produces:
Implementation details
The following optimisations are applied to reduce output html size:
- Apply the inline span to the whole set of icons rather than each icon individually
- Skip the "nowrap" span if a single icon is produced
These optimisations are necessary to avoid a "Pages where template include size is exceeded" error on some large pages (e.g. elite pack contents pages).