Wikisage, de vrije encyclopedie van de tweede generatie, is digitaal erfgoed

Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.

  • Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
  • Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
rel=nofollow

Sjabloon:Str ≥ len: verschil tussen versies

Uit Wikisage
Naar navigatie springen Naar zoeken springen
({{!}})
(=)
Regel 32: Regel 32:
<pre>
<pre>
{{str ≥ len  
{{str ≥ len  
{{!}} 1 = ab{{=}}cde  
{{!}} 1 = ab=cde  
{{!}} 2 = 100
{{!}} 2 = 100
{{!}} 3 = Equal "{{=}}" or longer.
{{!}} 3 = Equal "=" or longer.
{{!}} 4 = Shorter, not "{{=}}".
{{!}} 4 = Shorter, not "=".
}}
}}
</pre>
</pre>
Regel 42: Regel 42:


:{{str ≥ len  
:{{str ≥ len  
{{!}} 1 = ab{{=}}cde  
{{!}} 1 = ab=cde  
{{!}} 2 = 100
{{!}} 2 = 100
{{!}} 3 = Equal "{{=}}" or longer.
{{!}} 3 = Equal "=" or longer.
{{!}} 4 = Shorter, not "{{=}}".
{{!}} 4 = Shorter, not "=".
}}
}}



Versie van 19 mrt 2012 13:12

De sjabloonbeschrijving hieronder wordt niet afgebeeld wanneer de sjabloon wordt geplaatst.

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

It helps other templates check if a string is "longer or equally long" vs. "shorter" 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 more:

{{str ≥ len {{!}} abcde {{!}} 4
{{!}} Equal or longer.
{{!}} Shorter.
}}

Which returns this:

{{str ≥ len | abcde | 4

| Equal or longer. | Shorter. }}

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 100 characters or more:

{{str ≥ len 
{{!}} 1 = ab=cde 
{{!}} 2 = 100
{{!}} 3 = Equal "=" or longer.
{{!}} 4 = Shorter, not "=".
}}

Which returns this:

{{str ≥ len

| 1 = ab=cde | 2 = 100 | 3 = Equal "=" or longer. | 4 = Shorter, 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:

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

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 of 500 length or more are always considered to be "longer than or equally long", no matter what length value it is compared with.

Technical details

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

Even though this is a string handling template it uses very efficient code. (While some of the other string handling templates 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 (tn) 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.

rel=nofollow