יחידה:Yesno

גרסה מ־10:02, 7 בספטמבר 2025 מאת מ. רובין (שיחה | תרומות) (גרסה אחת יובאה)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)

יחידה זאת ממירה מחרוזות טקסט לקלט בוליאני, על מנת לאפשר שימוש בקלט המתקבל בתבניות חב"דפדיה, שיכולים לעבוד רק עם מחרוזות, בקוד לואה. היחידה מקבלת מחרוזת ומחזירה 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