Module:Yesno/doc: Difference between revisions

m
Adapt for this wiki
mNo edit summary
imported>FrozenPlum
m (Adapt for this wiki)
 
(10 intermediate revisions by 3 users not shown)
Line 1:
{{Documentation subpage}}
<noinclude>
{{#ifeq:{{SUBPAGENAME}}|doc||{{<!-- Documentation subpage}}}}here -->
<languages />
</noinclude>{{#switch:<translate></translate>
| =
<includeonly>{{Languages|Module:Yesno/doc}}</includeonly>
<!-- Add categories where indicated at the bottom of this page and interwikis at Wikidata -->
{{Shared Template Warning}}
{{high-risk}}
{{used in system}}
{{Module rating|release}}
{{Module rating|protected}}
<translate>This module provides a consistent interface for processing boolean or boolean-style string input.</translate>
<translate>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>
<translate>This module processes these kinds of strings and turns them into boolean input for Lua to process.</translate>
<translate>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>
<translate>The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions.</translate>
<translate>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>This module provides a consistent interface for processing boolean or boolean-style string input.</translate>
== Syntax ==
<translate>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>
<translate>This module processes these kinds of strings and turns them into boolean input for Lua to process.</translate>
<translate>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>
<translate>The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions.</translate>
<translate>If it is passed input that it does not recogniserecognize as boolean or <tvar name=1><code>nil</code></tvar>, it is possible to specify a default value to return.</translate>
 
== Syntax ==
<syntaxhighlight lang="lua">
yesno(value, default)
</syntaxhighlight>
 
<translate><tvar name=1><code>value</code></tvar> is the value to be tested.</translate>
<translate>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>
<translate>Other values evaluate to <tvar name=1><code>default</code></tvar>.</translate>
 
<translate>
== Usage ==
<translate>First, load the module. Note that it can only be loaded from other Lua modules, not from normal wiki pages.</translate>
</translate>
<translate>First, load the module. Note that it can only be loaded from other Lua modules, not from normal wiki pages.</translate>
<translate>For normal wiki pages you can use <tvar name=1>{{tlx|yesno}}</tvar> instead.</translate>
 
<syntaxhighlight lang="lua">
Line 37 ⟶ 25:
</syntaxhighlight>
 
<translate>Some input values always return <tvar name=1><code>true</code></tvar>, and some always return <tvar name=2><code>false</code></tvar>.</translate>
<translate><tvar name=1><code>nil</code></tvar> values always return <tvar name=1><code>nil</code></tvar>.</translate>
 
<syntaxhighlight lang="lua">
-- <translate nowrap>These always return <tvar name=1>true</tvar>:</translate>
yesno('yes')
yesno('y')
Line 50 ⟶ 38:
yesno(true)
 
-- <translate nowrap>These always return <tvar name=1>false</tvar>:</translate>
yesno('no')
yesno('n')
Line 59 ⟶ 47:
yesno(false)
 
-- <translate nowrap>A <tvar name=1>nil</tvar> value always returns <tvar name=1>nil</tvar>:</translate>
yesno(nil)
</syntaxhighlight>
<translate>
String values are converted to lower case before they are matched:
</translate>
<syntaxhighlight lang="lua">
-- <translate nowrap>These always return <tvar name=1>true</tvar>:</translate>
yesno('Yes')
yesno('YES')
Line 73 ⟶ 59:
yesno('tRuE')
 
-- <translate nowrap>These always return <tvar name=1>false</tvar>:</translate>
yesno('No')
yesno('NO')
Line 81 ⟶ 67:
</syntaxhighlight>
 
<translate>You can specify a default value if <tvar name=1><code>yesno</code></tvar> receives input other than that listed above.</translate>
<translate>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">
-- <translate nowrap>These return <tvar name=1>nil</tvar>:</translate>
yesno('foo')
yesno({})
Line 91 ⟶ 77:
yesno(function() return 'This is a function.' end)
 
-- <translate nowrap>These return <tvar name=1>true</tvar>:</translate>
yesno('foo', true)
yesno({}, true)
Line 97 ⟶ 83:
yesno(function() return 'This is a function.' end, true)
 
-- <translate nowrap>These return <tvar name=1>"bar"</tvar>:</translate>
yesno('foo', 'bar')
yesno({}, 'bar')
Line 103 ⟶ 89:
yesno(function() return 'This is a function.' end, 'bar')
</syntaxhighlight>
<!--T:26-->
<translate>
Note that the blank string also functions this way:
</translate>
<syntaxhighlight lang="lua">
yesno('') -- <translate nowrap>Returns <tvar name=1>nil</tvar>.</translate>
yesno('', true) -- <translate nowrap>Returns <tvar name=1>true</tvar>.</translate>
yesno('', 'bar') -- <translate nowrap>Returns <tvar name=1>"bar"</tvar>.</translate>
</syntaxhighlight>
 
<translate>Although the blank string usually evaluates to <code>false</code> in wikitext, it evaluates to <code>true</code> in Lua.</translate>
<translate>This module prefers the Lua behaviour over the wikitext behaviour.</translate>
<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>
<noinclude>
<includeonly>{{Sandbox other||
 
<!-- Categories below this line; interwikis at Wikidata -->
<includeonly>{{Sandbox other||
<!-- Template categories/interwikis here -->
[[Category:Modules]]
}}</includeonly><noinclude>
[[Category:Module documentation pages{{#translation:}}]]
</noinclude>
| #default=
{{#invoke:Template translation|renderTranslatedTemplate|template=Module:Yesno/doc|noshift=1|uselang={{int:lang}}}}
}}
Anonymous user