Difference between revisions of "Template:List"
J McKalling (Talk | contribs) (fixed: replaced rigid loop with flexible one, to keep it fast as possible (attempt)) |
J McKalling (Talk | contribs) (added the missing feature to accept elements in random order) |
||
Line 3: | Line 3: | ||
|{{#ifeq: {{{2|}}}||{{{1|}}} | |{{#ifeq: {{{2|}}}||{{{1|}}} | ||
|<{{#ifeq: {{{numeric|false}}}|false|ul|ol}}>{{#vardefine: arg|1}}{{#while: | |<{{#ifeq: {{{numeric|false}}}|false|ul|ol}}>{{#vardefine: arg|1}}{{#while: | ||
− | |{{{ {{#var: arg}}|}}} | + | |{{{ {{#var: arg}}|}}}{{#ifexpr: {{{range|0}}} >= {{#var: arg}}}} |
|<li>{{{ {{#var: arg}}}}}</li>{{#vardefine: arg|{{#expr:{{#var: arg}} + 1}}}}}}</{{#ifeq: {{{numeric|false}}}|false|ul|ol}}>}} | |<li>{{{ {{#var: arg}}}}}</li>{{#vardefine: arg|{{#expr:{{#var: arg}} + 1}}}}}}</{{#ifeq: {{{numeric|false}}}|false|ul|ol}}>}} | ||
}}</includeonly><noinclude>{{Infobox Template | }}</includeonly><noinclude>{{Infobox Template | ||
Line 23: | Line 23: | ||
Unlimited unnamed parameters, case sensitive, all default to not displayed. | Unlimited unnamed parameters, case sensitive, all default to not displayed. | ||
* '''numeric''': Whether to render a numeric (ordered) list instead (any value will do, defaults to false) | * '''numeric''': Whether to render a numeric (ordered) list instead (any value will do, defaults to false) | ||
+ | * '''range''': The minimum number of elements in the list to accept (any digit greater than zero, defaults to zero) | ||
Line 65: | Line 66: | ||
− | If the first string is empty or not specified, no list bullets will be displayed. | + | If the first string is empty or not specified, the list is terminated immediately and no list bullets will be displayed. But if the '''range''' is specified and greater than zero, that many empty strings will not terminate the list. |
</noinclude> | </noinclude> |
Revision as of 22:50, 6 June 2014
List | |
---|---|
Purpose |
Formatting [list all] |
Single tag |
Optional [list all] |
Multi-line |
Optional [list all] |
Protected |
No [list all] |
Game related |
No [list all] |
Categorization | |
Categories |
none [list all] |
Variables | |
Names |
One: [list all] |
|
|
Subpages |
This template wraps up non-empty strings into an (un)ordered list. The list will display the first string as-is if the second is empty, and will not display anything if the first is also empty. This is useful if the strings are yet unknown and only need to be wrapped if there are more than one not empty.
If the arguments are specified by their position number however, then their position number will instead be taken into account for this mechanic.
Parameters
Unlimited unnamed parameters, case sensitive, all default to not displayed.
- numeric: Whether to render a numeric (ordered) list instead (any value will do, defaults to false)
- range: The minimum number of elements in the list to accept (any digit greater than zero, defaults to zero)
Note: The unnamed parameters should be specified in proper order if using their positional numbers, no gaps, because the first empty number will terminate the list.
Syntax
{{list|numeric=yes |string one |string two |string three |... |string ten }}
Examples
When specifying only five strings:
{{list |Ape |Bear |Chihuahua |Donkey |Eel }}
- Ape
- Bear
- Chihuahua
- Donkey
- Eel
If only one string is specified:
{{list|only one string this time}}
- only one string this time
If the numeric parameter is specified with a nonempty value (it is ignored when only one list item is specified):
{{list|numeric=yes|only one string this time also}} {{list|numeric=yes |string one |and another}}
- only one string this time also
- string one
- and another
If the first string is empty or not specified, the list is terminated immediately and no list bullets will be displayed. But if the range is specified and greater than zero, that many empty strings will not terminate the list.