יחידה:Yesno: הבדלים בין גרסאות בדף

מתוך חב"דטקסט, מאגר טקסטים חב"דים חופשיים
קפיצה לניווט קפיצה לחיפוש
ויקיטקסט>I'm the cookie monster
מאין תקציר עריכה
 
מ (גרסה אחת יובאה)
 
(אין הבדלים)

גרסה אחרונה מ־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