Modul:Yesno
Ta modul zagotavlja poenoten vmesnik za procesiranje boolean ali booleanu podobne stringe. Medtem ko Lua dovoljuje true
in false
boolena vrednosti, lahko wikikoda izrazi boolena vrednosti s pomočjo strinkov kot so "yes", "no" ali "da", "ne", itd. Ta modul obdela stringe tega tipa in jih vrne v boolean za obdelavo v Lua. Vrača tudi nil
vrednosti kot nil
, tako da se omogoča razlikovanje med nil
in false
. Modul sprejme tudi druge vhodne strukture, t.j boolean, števila, tabele in funkcije. Če vhodna vrednost ni pravilno prepoznana kot boolean ali nil
, je možno določiti tudi privzeto (default) izhodno vrednost.
Sintaksa
urediyesno(vrednost, default)
vrednost
je vrednost, ki se bo preverila. Boolean ali booleanu podobni vhodni stringi (glej spodaj), se bodo vedno vrednotili kot true
, false
, in nil
se bo vedno vrednotil kot nil
. Druge vrednosti bodo privzele prednastavljeno vrednostdefault
.
Uporaba
urediTa modul lahko uporabite le znotraj drugega modula, za običajne wiki strani namesto tega uporabite predlogo {{dane}}.
local yesno = require('Modul:Yesno')
Nekatere vhodne vrednosti vedno vrnejo true
, in nekatere vedno vrnejo false
. nil
vrednost vedno vrne nil
.
-- Tile vedno vrnejo true:
yesno('da')
yesno('d')
yesno('yes')
yesno('y')
yesno('true')
yesno('1')
yesno(1)
yesno(true)
-- Tile vedno vrnejo false:
yesno('ne')
yesno('no')
yesno('n')
yesno('false')
yesno('0')
yesno(0)
yesno(false)
-- Nil vrednosti vedno vrnejo nil:
yesno(nil)
String vrednosti so pred primerjavo pretvorjene v male črke:
-- Tile vedno vrnejo true:
yesno('Da')
yesno('dA')
yesno('DA')
yesno('D')
yesno('Yes')
yesno('YES')
yesno('yEs')
yesno('Y')
yesno('tRuE')
-- Tile vedno vrnejo false:
yesno('Ne')
yesno('nE')
yesno('NE')
yesno('No')
yesno('NO')
yesno('nO')
yesno('N')
yesno('fALsE')
Določite lahko privzeto vrednost, če vhodna vrednost ne ustreza nobeni izmed zgoraj naštetim. Če privzete vrednosti ne določite, bo modul za te vrednosti vrnil nil
.
-- Tile bodo vrnili nil:
yesno('foo')
yesno({})
yesno(5)
yesno(function() return 'This is a function.' end)
-- Tile bodo vrnili true:
yesno('foo', true)
yesno({}, true)
yesno(5, true)
yesno(function() return 'This is a function.' end, true)
-- Tile bodo vrnili "bar":
yesno('foo', 'bar')
yesno({}, 'bar')
yesno(5, 'bar')
yesno(function() return 'This is a function.' end, 'bar')
Bodite pozorni na to, da tudi prazen string deluje na podoben način:
yesno('') -- Vrne nil.
yesno('', true) -- Vrne true.
yesno('', 'bar') -- Vrne "bar".
Čeprav se prazen string v wikibesedilu običajno obravnava kot false, se v Lua obravnava kot true.
Zgornja dokumentacija je vključena iz Modul:Yesno/dok. (uredi | zgodovina) Urejevalci lahko preizkušate ta modul v peskovniku (uredi | primerjava) in testnihprimerih (uredi). Prosimo, da dodate kategorije v /dok podstran. Podstrani te predloge. |
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
-- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
-- should replace "val:lower()" with "mw.ustring.lower(val)" in the
-- following line.
val = type(val) == 'string' and val:lower() or val
if val == nil then
return nil
elseif val == true
or val == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or val == 'da'
or val == 'd'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'no'
or val == 'n'
or val == 'false'
or val == 'f'
or val == 'off'
or val == 'ne'
or tonumber(val) == 0
then
return false
else
return default
end
end