Template:For loop/doc

This template calls a user specified template once for each of a list of values. A named parameter is passed with the value from the list of the current iteration with a possible prefix and/or a postfix attached. In addition to the variable parameter, fixed parameters can be specified to be passed with each iteration. The first unnamed parameter is output between calls to the user specified template.

Usage
The separator is the first unnamed parameter, allowing it to start and/or end with newlines and spaces. The separator is output between calls to the template named in. It is not output after the last call to that template. The separator parameter is prior to the value list. If a value in the list contains an equals sign, use use equalsign. If you do not use equalsign, the list must use named parameters, at least from that point. If you use named parameters, note that the first value is parameter 2 (e.g. ), because parameter 1 is the separator. If the separator contains an equals sign, equalsign should also be used. Alternately, the separator can similarly be prefixed with "1=", but in that case it cannot contain newlines and spaces at the start and end. Also, if you use named parameters, you must not skip any numbers. The loop will terminate after the first absent numbered parameter. (Note that parameters can be blank but not absent; blank parameters are read as normal.)

Examples
Note that the last part of the separator is used as a prefix; the first prefix needs to be put separately.

using 3x gives

gives

gives:

gives:

This demonstrates the limitation to 150 items.

begin-><-end gives:

begin-><-end

Legacy code
The template was originally based on m:Template:For. The template name was changed because there was already a Template:For on Wikipedia.

Substitution
This ParserFunctions-based template supported varying levels of substitution. For successive levels of substitution use one or more or the following (the first, the first two, the first three, the first four, or all five).


 * "subst:" in front of "for loop" - substitute the call of for loop
 * substf=subst: - substitute the parser functions in for loop
 * substfa=subst: - substitute the call of For loop/aux, a helper subtemplate
 * substa=subst: - substitute the parser functions in For loop/aux (reduces the number of items from 150 to the actual number)
 * substc=subst: - substitute the calls of the user template

If at least the first four are applied, and the separator contains, one can replace it with   to substitute that too.

Dependencies
This template requires the existence of
 * for loop/aux
 * 1x
 * 2x
 * 3x