Template:Str ≠ len/doc: Difference between revisions
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 === |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
<!-- 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 template is used on approximately 38,000 pages and changes may be widely noticed. Test changes in the template's /sandbox or /testcases subpages, or in your own user subpage. Consider discussing changes on the talk page before implementing them. |
![]() | This is a documentation subpage for Template:Str ≠ len. It may contain usage information, categories and other content that is not part of the original template page. |
![]() | This template uses Lua: |
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]