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