יחידה: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