Wikipedia:Expansion depth limit

Expansion depth limit refers to the expansion, or processing, of nested templates and nested if-else structures, which for years, have been limited to 40 levels deep inside the MediaWiki NewPP preprocessor. Although some editors have requested for years that the low limit of 40 levels to be increased to 60, or 80, total levels, meanwhile, editors must beware nesting the use of large templates, infoboxes, or deep if-else-else-else logic.

Ways to reduce the nesting edit

There are several methods to reduce the nesting of templates and if-else logic:

  • Template:Convert, which defaults to 28 levels deep, can be reduced by 7 levels (to 21 deep) by putting a rounding value or sigfig=3: so {{convert|3|m|ft|1}} will set the rounding value to "1" decimal digits, to show "3 metres (9.8 ft)".
  • Template:Infobox NRHP, which allows option "embed=yes" for nesting inside an outer infobox, can be reduced by 7 levels by setting "embed=no" and keeping the {Infobox NRHP} outside the upper infobox.
  • Template:Strfind_short, which searches for a word/string inside a longer string, can be used to match a string within 7–9 levels, while other templates run 23–25 levels deep.
  • Run calculations, in parameters, before calling other templates. For example, the length of a word should be passed as an upper-level parameter, rather than being calculated at the lowest levels of template operation:
  • {{large template | word=xx | len={{strlen_short|xx}} }}
In general, the length of a word, or other tedious calculations should be performed as parameters to be passed into the larger templates which usually have deeply nested subtemplates or if-else logic.

See also edit

[ This essay is a quick draft to be expanded later. ]