Module:Yesno
Moduleinfo: Yesno
[brontekst bewerken]Wuk doet et?
[brontekst bewerken]Module:Yesno is e Lua-script da inkomende tekst controleert en otematisch omzet noar e logische (boolean) woarde: true of false.
Omda wikitext-patrôonn allêne moa tekst (strings) lik "yes", "no", "1" of "0" kunn deuregeevn an e module, makt dit script d'r echte Lua-booleans van zoda d'r mèi gerekend kan wordn. Et gèeft lege (nil) woardn ôok zuuver were as nil, zoda je e dudelik verschil kut moakn tussn "nie ingevuld" (nil) en "neen" (false).
Syntax
[brontekst bewerken]yesno(waarde, standaard_waarde)
De waarde is d' input da je wilt testn. Gekende tekstn wordn true of false. Lege (nil) tekst bluuft nil. O de tekst ounbekend is (byv. "appelsien"), gèeft et de standaard_waarde were.
Boasisgebruuk
[brontekst bewerken]Êest moe je de module inleezn in joun eign script:
local yesno = require('Module:Yesno')
Sommigte inkoamende woardn geevn assan true were, en andere assan false:
-- Deze geevn assan 'true' (woar) were:
yesno('yes')
yesno('y')
yesno('true')
yesno('t')
yesno('on')
yesno('1')
yesno(1)
yesno(true)
-- Deze geevn assan 'false' (nie woar) were:
yesno('no')
yesno('n')
yesno('false')
yesno('f')
yesno('off')
yesno('0')
yesno(0)
yesno(false)
-- E 'nil' (lege) woarde gèeft assan 'nil' were:
yesno(nil)
yesno()
Tekstn wordn otematisch noa klêne letters omgezet êer da ze gecontroleerd wordn. Dus et makt nie uut oe da je 't typt:
-- Deze zyn aollemoal 'true':
yesno('Yes')
yesno('YES')
yesno('yEs')
yesno('tRuE')
Ounbekende inoed (Fallback)
[brontekst bewerken]Je kut e standoardwoarde (default) ipgeevn vo wanneir d' input getwuk oars is of wa da ierboovn stoat. A je gèn standoardwoarde ipgèeft, gèeft de module nil were vôor ounbekende tekstn.
-- Deze geevn 'nil' were:
yesno('appelsien')
yesno(5)
yesno('')
-- Deze geevn 'true' were (omda 'true' as standoard is ingereevn):
yesno('appelsien', true)
yesno(5, true)
yesno('', true)
-- Deze geevn "test" were:
yesno('appelsien', 'test')
yesno(5, 'test')
Omgoan mèi 'nil' resultoatn
[brontekst bewerken]As joun code allêne moa strènge true of false woardn mag èn (en gèn nil verdroagt), is d'r een andige truc oem e standoard true/false af te dwiengn wanneir de woarde leeg of ounbekend is:
-- Korte code as de standoard 'false' moe zyn: myn_variabele = yesno(waarde or false, false) -- As 'waarde' leeg (nil) is, pakt et 'false'. -- As 'waarde' e roare tekst is lik "test", pakt et de default 'false'. -- Korte code as de standoard 'true' moe zyn: myn_variabele = yesno(waarde or true, true) -- As 'waarde' leeg (nil) is, pakt et 'true'. -- As 'waarde' e roare tekst is, pakt et ôok de default 'true'.
-- 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 mw.ustring.lower(val) or val
if val == nil then
return nil
elseif val == true
or val == 'ja'
or val == 'joa' -- VLS
or val == 'yes'
or val == 'y'
or val == 'waar'
or val == 'woar' -- VLS
or val == 'just' -- VLS
or val == 'true'
or val == 't'
or val == 'aan'
or val == 'an' -- VLS
or val == 'on'
or tonumber(val) == 1
then
return true
elseif val == false
or val == 'nee'
or val == 'nêe' -- VLS
or val == 'nin' -- VLS
or val == 'nji' -- VLS
or val == 'no'
or val == 'n'
or val == 'onwaar'
or val == 'onwoar' -- VLS
or val == 'false'
or val == 'f'
or val == 'uit'
or val == 'uut' -- VLS
or val == 'off'
or tonumber(val) == 0
then
return false
else
return default
end
end