Jump to content

Template:Str ≠ len/doc: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Creating the documentation for this string length comparison template.
 
Adding a warning box at top of page: "This template is brand new and not properly tested. Do not use this template yet."
Line 1: Line 1:
{{Documentation subpage}}
{{Documentation subpage}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->

{{ombox
| type = content
| text = This template is brand new and not properly tested. Do not use this template yet. <br> --[[User:Davidgothberg|David Göthberg]] ([[User talk:Davidgothberg|talk]]) 22:42, 24 March 2009 (UTC)
}}


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

Revision as of 22:42, 24 March 2009

This is the {{str ≠ len}} meta-template.

It helps other templates check if a string is "not equal" vs. "equal" to a given length.

Usage

This template takes 3 to 4 unnamed parameters.

Here is how to check if the string "abcde" is exactly 5 characters:

{{str ≠ len | abcde | 5
| Not equal.
| Equal.
}}

Which returns this:

Equal.

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

{{str ≠ len 
| 1 = ab=cde 
| 2 = 100
| 3 = Not equal, "!=".
| 4 = Equal, "=".
}}

Which returns this:

Not equal, "!=".

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:

{{str ≠ len 
| 1 = A string, 0-500 characters long.
| 2 = 0 - 500
| 3 = Data to return/render when "not equally long".
| 4 = Data to return/render when "equally long".
}}

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

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

Technical details

This template would be equivalent to templates named {{str != len}} or {{str == len}}, but we can't use those template names since they don't work well in MediaWiki.

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

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

See also

Easy to use and efficient string length functions:

  • {{str ≥ len}} – To check if a string is "longer or equally long" vs. "shorter" than a given length.
  • {{str ≤ len}} – To check if a string is "shorter or equally long" vs. "longer" than a given length.
  • {{str ≠ len}} – To check if a string is "not equal" vs. "equal" to a given length.
  • {{if str len}} – To check all three of "shorter", "equal" and "longer" at the same time.