יחידה:Yesno
יחידה זאת ממירה מחרוזות טקסט לקלט בוליאני, על מנת לאפשר שימוש בקלט המתקבל בתבניות ויקיפדיה, שיכולים לעבוד רק עם מחרוזות, בקוד לואה. היחידה מקבלת מחרוזת ומחזירה true, false או nil.
שימוש
עריכהניתן להשתמש ביחידה בתוך קוד לואה אחר בלבד ולא בתוך דפי ויקיטקסט או תבניות. ייבוא:
local yesno = require('Module:Yesno')
שימוש:
-- מחזיר true:
yesno('כן')
yesno('כ')
yesno('yes')
yesno('y')
yesno('true')
yesno('t')
yesno('1')
yesno(1)
yesno(true)
-- מחזיר false:
yesno('לא')
yesno('ל')
yesno('no')
yesno('n')
yesno('false')
yesno('f')
yesno('0')
yesno(0)
yesno(false)
-- מחזיר nil:
yesno(nil)
-- (כל ערך אחר)
-- 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 == 'yes'
or val == 'y'
or val == 'true'
or val == 't'
or val == 'on'
or val == 'כ'
or val == 'כן'
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 == 'לא'
or val == 'ל'
or tonumber(val) == 0
then
return false
else
return default
end
end