Jump to content

Template:Str ≠ len/doc: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
DixonDBot (talk | contribs)
m Migrating 3 interwiki links, now provided by Wikidata on d:Q7448016
m move high-use template to top
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{high-use}}
{{Documentation subpage}}
{{Documentation subpage}}
{{lua|Module:String}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->


Line 9: Line 11:


=== Usage ===
=== Usage ===

This template takes 3 to 4 unnamed parameters.
This template takes 3 to 4 unnamed parameters.


Line 51: Line 52:


=== Parameters ===
=== Parameters ===

Detailed parameter explanation:
Detailed parameter explanation:


Line 68: Line 68:


=== Technical details ===
=== Technical details ===

This template would be equivalent to templates named <nowiki>{{str != len}} or {{str == len}}</nowiki>, but we can't use those template names since they don't work well in MediaWiki.
This template would be equivalent to templates named <nowiki>{{str != len}} or {{str == len}}</nowiki>, but we can't use those template names since they don't work well 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.
[[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 ===
=== See also ===
{{string-handling templates}}


<includeonly>{{Sandbox other||
{{navbox string handling templates}}

<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:String manipulation templates|{{PAGENAME}}]]
[[Category:String manipulation templates|{{PAGENAME}}]]
[[Category:Lua String-based templates]]


</includeonly>
}}</includeonly>

Latest revision as of 00:36, 21 May 2023

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

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

Note! For most usage cases it might be better to use {{str ≥ len}}. (See the see also section below.)

Usage

[edit]

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

[edit]

Detailed parameter explanation:

{{str ≠ len 
| 1 = A string
| 2 = A length
| 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.

Length values below 0 are considered to be 0.

Technical details

[edit]

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.

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

[edit]