Difference between revisions 104012 and 126281 on aswiki

{{Documentation subpage}}
{{high-risk| 350,000+ }}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->

This is the {{tl|str ≤ len}} meta-template.

It helps other templates check if a string is "shorter or equally long" vs. "longer" than a given length.

=== Usage ===

This template takes 3 to 4 unnamed parameters.

Here is how to check if the string "abcde" is 4 characters or less:

<pre>
{{str ≤ len | abcde | 4
| Equal or shorter.
| Longer.
}}
</pre>

Which returns this:

:{{str ≤ len | abcde | 4
| Equal or shorter.
| Longer.
}}

Templates have a problem to handle parameter data that contains equal signs "<code>=</code>". But that is easily solved by using numbered parameters. Here we check if the string "ab=cde" is 100 characters or less:

<pre>
{{str ≤ len 
| 1 = ab=cde 
| 2 = 100
| 3 = Equal "=" or shorter.
| 4 = Longer, not "=".
}}
</pre>

Which returns this:

:{{str ≤ len 
| 1 = ab=cde 
| 2 = 100
| 3 = Equal "=" or shorter.
| 4 = Longer, not "=".
}}

It probably is a good habit to always use the numbered parameters, since you might not know beforehand exactly how the data will look that your template will feed to this meta-template.

=== Parameters ===

Detailed parameter explanation:

<pre>
{{str ≤ len 
| 1 = A string, 0-500 characters long.
| 2 = 0 - 500
| 3 = Data to return/render when "shorter than or equally long".
| 4 = Data to return/render when "longer than".
}}
</pre>

Empty or undefined strings are considered to be of 0 length. Strings longer than 500 are not truncated to 500.

Length values below 0 are considered to be 0. Length values above 500 are considered to be 500.

Thus a string longer than 500 is always considered to be "longer", even if it is compared with the "correct" length value.

=== Technical details ===

The potential alternative templates names <nowiki>{{str <= len}} or (for the opposite) {{str > len}}</nowiki> do not work in MediaWiki.

Even though this is a string handling template it uses efficient code. (While some of the other string handling templates are probably so heavy on the servers that we perhaps should not use them.)

[[Help:Template|Templates]] have problems to handle parameter data that contains pipes "<code>|</code>", unless the pipe is inside another template <code><nowiki>{{name|param1}}</nowiki></code> or inside a piped link <code><nowiki>[[Help:Template|help]]</nowiki></code>. Thus templates can not handle [[Help:Table|wikitables]] as input unless you escape them by using the {{tn|!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use "[[Help:HTML in wikitext|HTML wikimarkup]]" for the table code, which is more robust.

=== See also ===

{{string templates see also}}

<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:String manipulation templates|{{PAGENAME}}]]
[[en:Template:Str ≦ len]]
[[id:Templat:Str ≤ len]]
[[ko:틀:Str ≤ len]]
[[sl:Predloga:Str ≤ len]]
</includeonly>