Module:Yesno/doc: Difference between revisions
Content added Content deleted
(Removed page from translation) |
|||
Line 1: | Line 1: | ||
<noinclude><!-- |
<noinclude><!-- |
||
-->{{#ifeq:{{SUBPAGENAME}}|doc||{{Documentation subpage}}}}<!-- |
-->{{#ifeq:{{SUBPAGENAME}}|doc||{{Documentation subpage}}}}<!-- |
||
--><!-- |
--><languages /><!-- |
||
--></noinclude>{{#switch: |
--></noinclude>{{#switch:<translate></translate> |
||
| = |
| = |
||
<includeonly>{{Languages|Module:Yesno/doc}}</includeonly> |
<includeonly>{{Languages|Module:Yesno/doc}}</includeonly> |
||
Line 11: | Line 11: | ||
{{Module rating|release}} |
{{Module rating|release}} |
||
{{Module rating|protected}} |
{{Module rating|protected}} |
||
This module provides a consistent interface for processing boolean or boolean-style string input. |
<translate><!--T:1--> This module provides a consistent interface for processing boolean or boolean-style string input.</translate> |
||
While Lua allows the <code>true</code> and <code>false</code> boolean values, wikicode templates can only express boolean values through strings such as "1", "0", "yes", "no", etc. |
<translate><!--T:2--> While Lua allows the <tvar name=1><code>true</code></tvar> and <tvar name=2><code>false</code></tvar> boolean values, wikicode templates can only express boolean values through strings such as <tvar name=3>"1"</tvar>, <tvar name=4>"0"</tvar>, <tvar name=5>"yes"</tvar>, <tvar name=6>"no"</tvar>, etc.</translate> |
||
This module processes these kinds of strings and turns them into boolean input for Lua to process. |
<translate><!--T:3--> This module processes these kinds of strings and turns them into boolean input for Lua to process.</translate> |
||
It also returns <code>nil</code> values as <code>nil</code>, to allow for distinctions between <code>nil</code> and <code>false</code>. |
<translate><!--T:4--> It also returns <tvar name=1><code>nil</code></tvar> values as <tvar name=1><code>nil</code></tvar>, to allow for distinctions between <tvar name=1><code>nil</code></tvar> and <tvar name=2><code>false</code></tvar>.</translate> |
||
The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions. |
<translate><!--T:5--> The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions.</translate> |
||
If it is passed input that it does not recognise as boolean or <code>nil</code>, it is possible to specify a default value to return. |
<translate><!--T:6--> If it is passed input that it does not recognise as boolean or <tvar name=1><code>nil</code></tvar>, it is possible to specify a default value to return.</translate> |
||
<translate> |
|||
== Syntax == |
== Syntax == <!--T:33--> |
||
</translate> |
|||
<syntaxhighlight lang="lua"> |
<syntaxhighlight lang="lua"> |
||
yesno(value, default) |
yesno(value, default) |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
<code>value</code> is the value to be tested. |
<translate><!--T:7--> <tvar name=1><code>value</code></tvar> is the value to be tested.</translate> |
||
Boolean input or boolean-style input (see below) always evaluates to either <code>true</code> or <code>false</code>, and <code>nil</code> always evaluates to <code>nil</code>. |
<translate><!--T:8--> Boolean input or boolean-style input (see below) always evaluates to either <tvar name=1><code>true</code></tvar> or <tvar name=2><code>false</code></tvar>, and <tvar name=3><code>nil</code></tvar> always evaluates to <tvar name=3><code>nil</code></tvar>.</translate> |
||
Other values evaluate to <code>default</code>. |
<translate><!--T:9--> Other values evaluate to <tvar name=1><code>default</code></tvar>.</translate> |
||
<translate> |
|||
== Usage == |
== Usage == <!--T:10--> |
||
⚫ | |||
</translate> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
<syntaxhighlight lang="lua"> |
<syntaxhighlight lang="lua"> |
||
Line 33: | Line 37: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
Some input values always return <code>true</code>, and some always return <code>false</code>. |
<translate><!--T:13--> Some input values always return <tvar name=1><code>true</code></tvar>, and some always return <tvar name=2><code>false</code></tvar>.</translate> |
||
<code>nil</code> values always return <code>nil</code>. |
<translate><!--T:14--> <tvar name=1><code>nil</code></tvar> values always return <tvar name=1><code>nil</code></tvar>.</translate> |
||
<syntaxhighlight lang="lua"> |
<syntaxhighlight lang="lua"> |
||
-- These always return true: |
-- <translate nowrap><!--T:15--> These always return <tvar name=1>true</tvar>:</translate> |
||
yesno('yes') |
yesno('yes') |
||
yesno('y') |
yesno('y') |
||
Line 46: | Line 50: | ||
yesno(true) |
yesno(true) |
||
-- These always return false: |
-- <translate nowrap><!--T:16--> These always return <tvar name=1>false</tvar>:</translate> |
||
yesno('no') |
yesno('no') |
||
yesno('n') |
yesno('n') |
||
Line 55: | Line 59: | ||
yesno(false) |
yesno(false) |
||
-- A nil value always returns nil: |
-- <translate nowrap><!--T:17--> A <tvar name=1>nil</tvar> value always returns <tvar name=1>nil</tvar>:</translate> |
||
yesno(nil) |
yesno(nil) |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
<translate> |
|||
<!--T:18--> |
|||
String values are converted to lower case before they are matched: |
String values are converted to lower case before they are matched: |
||
</translate> |
|||
<syntaxhighlight lang="lua"> |
<syntaxhighlight lang="lua"> |
||
-- These always return true: |
-- <translate nowrap><!--T:19--> These always return <tvar name=1>true</tvar>:</translate> |
||
yesno('Yes') |
yesno('Yes') |
||
yesno('YES') |
yesno('YES') |
||
Line 67: | Line 74: | ||
yesno('tRuE') |
yesno('tRuE') |
||
-- These always return false: |
-- <translate nowrap><!--T:20--> These always return <tvar name=1>false</tvar>:</translate> |
||
yesno('No') |
yesno('No') |
||
yesno('NO') |
yesno('NO') |
||
Line 75: | Line 82: | ||
</syntaxhighlight> |
</syntaxhighlight> |
||
You can specify a default value if <code>yesno</code> receives input other than that listed above. |
<translate><!--T:21--> You can specify a default value if <tvar name=1><code>yesno</code></tvar> receives input other than that listed above.</translate> |
||
If you don't supply a default, the module will return <code>nil</code> for these inputs. |
<translate><!--T:22--> If you don't supply a default, the module will return <tvar name=1><code>nil</code></tvar> for these inputs.</translate> |
||
<syntaxhighlight lang="lua"> |
<syntaxhighlight lang="lua"> |
||
-- These return nil: |
-- <translate nowrap><!--T:23--> These return <tvar name=1>nil</tvar>:</translate> |
||
yesno('foo') |
yesno('foo') |
||
yesno({}) |
yesno({}) |
||
Line 85: | Line 92: | ||
yesno(function() return 'This is a function.' end) |
yesno(function() return 'This is a function.' end) |
||
-- These return true: |
-- <translate nowrap><!--T:24--> These return <tvar name=1>true</tvar>:</translate> |
||
yesno('foo', true) |
yesno('foo', true) |
||
yesno({}, true) |
yesno({}, true) |
||
Line 91: | Line 98: | ||
yesno(function() return 'This is a function.' end, true) |
yesno(function() return 'This is a function.' end, true) |
||
-- These return "bar": |
-- <translate nowrap><!--T:25--> These return <tvar name=1>"bar"</tvar>:</translate> |
||
yesno('foo', 'bar') |
yesno('foo', 'bar') |
||
yesno({}, 'bar') |
yesno({}, 'bar') |
||
Line 97: | Line 104: | ||
yesno(function() return 'This is a function.' end, 'bar') |
yesno(function() return 'This is a function.' end, 'bar') |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
<translate> |
|||
<!--T:26--> |
|||
Note that the blank string also functions this way: |
Note that the blank string also functions this way: |
||
</translate> |
|||
<syntaxhighlight lang="lua"> |
<syntaxhighlight lang="lua"> |
||
yesno('') -- Returns nil. |
yesno('') -- <translate nowrap><!--T:27--> Returns <tvar name=1>nil</tvar>.</translate> |
||
yesno('', true) -- Returns true. |
yesno('', true) -- <translate nowrap><!--T:28--> Returns <tvar name=1>true</tvar>.</translate> |
||
yesno('', 'bar') -- Returns "bar". |
yesno('', 'bar') -- <translate nowrap><!--T:29--> Returns <tvar name=1>"bar"</tvar>.</translate> |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
Although the blank string usually evaluates to <code>false</code> in wikitext, it evaluates to <code>true</code> in Lua. |
<translate><!--T:30--> Although the blank string usually evaluates to <tvar name=1><code>false</code></tvar> in wikitext, it evaluates to <tvar name=2><code>true</code></tvar> in Lua.</translate> |
||
This module prefers the Lua behaviour over the wikitext behaviour. |
<translate><!--T:31--> This module prefers the Lua behaviour over the wikitext behaviour.</translate> |
||
If treating the blank string as <code>false</code> is important for your module, you will need to remove blank arguments at an earlier stage of processing. |
<translate><!--T:32--> If treating the blank string as <tvar name=1><code>false</code></tvar> is important for your module, you will need to remove blank arguments at an earlier stage of processing.</translate> |
||
<includeonly>{{Sandbox other|| |
<includeonly>{{Sandbox other|| |
||
<!-- Categories below this line; interwikis at Wikidata --> |
<!-- Categories below this line; interwikis at Wikidata --> |
Revision as of 13:12, 2 July 2021
<languages />Script error: No such module "Template translation".