İçeriğe atla

Modül:Yesno

Deltarune Wiki sitesinden

Yesno module for processing of boolean-like wikitext input. It works similarly to the Yesno Wikipedia template. This module is a consistent Lua interface for wikitext input from templates.

Wikitext markup used by MediaWiki templates only permit string parameters like `"0"`, `"yes"`, `"no"` etc. As Lua has a boolean primitive type, Yesno converts this wikitext into boolean output for Lua to process.

Documentation

Package function

<code id="yesno(value, default)">yesno(value, default) (function)
Yesno module for processing of boolean-like wikitext input.
Parameters:
  • value Wikitext boolean-style or Lua boolean input.
    • Truthy wikitext input (`'yes'`, `'y'`, `'1'`, `'t'` or `'on'`) produces `true` as output.
    • The string representations of Lua's true boolean value (`'true'`) also produces `true`.
    • Falsy wikitext input (`'no'`, `'n'`, `'0'`, `'f'` or `'off'`) produces `false` as output.
    • The string representation of Lua's false boolean value (`'false'`) also produces `false`.
    • Localised text meaning `'yes'` or `'no'` also evaluate to `true` or `false` respectively.
  • (boolean|string|nil)
  • default Output to return if the Yesno `value` input is unrecognised. (boolean|string|nil; optional)
Returns: Boolean output corresponding to `val`:
  • The strings documented above produce a boolean value.
  • A `nil` value produces an output of `nil`. As this is falsy, additional logic may be needed to treat missing template parameters as truthy.
  • Unrecognised values return the `default` parameter. Blank strings are a key example of Yesno's unrecognised values and can evaluate to `true` if there is a default value.
(boolean|nil)

See also

Original module on Wikipedia

--  <nowiki>
--- Yesno module for processing of boolean-like wikitext input.
--  
--  It works similarly to the [[wikipedia:Template:Yesno|Yesno Wikipedia
--  template]]. This module is a consistent Lua interface for wikitext
--  input from templates.
--  
--  Wikitext markup used by MediaWiki templates only permit
--  string parameters like `"0"`, `"yes"`, `"no"` etc. As Lua
--  has a boolean primitive type, Yesno converts this
--  wikitext into boolean output for Lua to process.
--  
--  @script             yesno
--  @release            stable
--  @author             [[User:Dessamator|Dessamator]]
--  @attribution        [[wikipedia:User:ATDT|ATDT]]
--  @attribution        [[wikipedia:User:Mr. Stradivarius|Mr. Stradivarius]]
--  @attribution        [[wikipedia:Special:PageHistory/Module:Yesno|Other Wikipedia contributors]]
--  @see                [[wikipedia:Module:Yesno|Original module on
--                      Wikipedia]]
--  @param              {?boolean|string} value Wikitext boolean-style
--                      or Lua boolean input.
--                       * Truthy wikitext input (`'yes'`, `'y'`, `'1'`,
--                      `'t'` or `'on'`) produces `true` as output.
--                       * The string representations of Lua's true
--                      boolean value (`'true'`) also produces `true`.
--                       * Falsy wikitext input (`'no'`, `'n'`, `'0'`,
--                      `'f'` or `'off'`) produces `false` as output.
--                       * The string representation of Lua's false
--                      boolean value (`'false'`) also produces `false`.
--                       * Localised text meaning `'yes'` or `'no'` also
--                      evaluate to `true` or `false` respectively.
--  @param[opt]         {?boolean|string} default Output to return if
--                      the Yesno `value` input is unrecognised.
--  @return             {?boolean} Boolean output corresponding to
--                      `val`:
--                       * The strings documented above produce a
--                      boolean value.
--                       * A `nil` value produces an output of `nil`.
--                      As this is falsy, additional logic may be needed
--                      to treat missing template parameters as truthy.
--                       * Unrecognised values return the `default`
--                      parameter. Blank strings are a key example
--                      of Yesno's unrecognised values and can evaluate
--                      to `true` if there is a default value.
local lower = mw.ustring.lower
local msg = mw.message.new

local yes = lower(msg('htmlform-yes'):plain())
local no = lower(msg('htmlform-no'):plain())
local en_yes = lower(msg('htmlform-yes'):inLanguage('en'):plain())
local en_no = lower(msg('htmlform-no'):inLanguage('en'):plain())

return function(value, default)
    value = type(value) == 'string' and lower(value) or value

    if value == nil then
        return nil

    elseif value == true
        or value == yes
        or value == en_yes
        or value == 'y'
        or value == 'true'
        or value == 't'
        or value == 'on'
        or value == 'enable'
        or tonumber(value) == 1
    then
        return true

    elseif value == false
        or value == no
        or value == en_no
        or value == 'n'
        or value == 'false'
        or value == 'f'
        or value == 'off'
        or value == 'disable'
        or tonumber(value) == 0
    then
        return false

    else
        return default
    end
end
--  </nowiki>
Konu ekle