Naar inhoud springen

Module:Yesno

Van Wikipedia
🛑
Ipgelet: Ôog risico module!
Dit module wordt gebruukt in systeem-berichtn of ip vrêe vele bloadn. Een anpassienge an dees code kan d'n uutkyk van de gansche wiki direct verandern. Test anpassiengn êest in e zandbak of discuteer d'rover ip 't overlegblad vôoda je ze definitief bywerkt.

Moduleinfo: Yesno

[brontekst bewerken]

Wuk doet et?

[brontekst bewerken]

Module:Yesno is e Lua-script da inkomende tekst controleert en otematisch omzet noar e logische (boolean) woarde: true of false.

Omda wikitext-patrôonn allêne moa tekst (strings) lik "yes", "no", "1" of "0" kunn deuregeevn an e module, makt dit script d'r echte Lua-booleans van zoda d'r mèi gerekend kan wordn. Et gèeft lege (nil) woardn ôok zuuver were as nil, zoda je e dudelik verschil kut moakn tussn "nie ingevuld" (nil) en "neen" (false).

yesno(waarde, standaard_waarde)

De waarde is d' input da je wilt testn. Gekende tekstn wordn true of false. Lege (nil) tekst bluuft nil. O de tekst ounbekend is (byv. "appelsien"), gèeft et de standaard_waarde were.

Boasisgebruuk

[brontekst bewerken]

Êest moe je de module inleezn in joun eign script:

local yesno = require('Module:Yesno')

Sommigte inkoamende woardn geevn assan true were, en andere assan false:

-- Deze geevn assan 'true' (woar) were:
yesno('yes')
yesno('y')
yesno('true')
yesno('t')
yesno('on')
yesno('1')
yesno(1)
yesno(true)

-- Deze geevn assan 'false' (nie woar) were:
yesno('no')
yesno('n')
yesno('false')
yesno('f')
yesno('off')
yesno('0')
yesno(0)
yesno(false)

-- E 'nil' (lege) woarde gèeft assan 'nil' were:
yesno(nil)
yesno()

Tekstn wordn otematisch noa klêne letters omgezet êer da ze gecontroleerd wordn. Dus et makt nie uut oe da je 't typt:

-- Deze zyn aollemoal 'true':
yesno('Yes')
yesno('YES')
yesno('yEs')
yesno('tRuE')

Ounbekende inoed (Fallback)

[brontekst bewerken]

Je kut e standoardwoarde (default) ipgeevn vo wanneir d' input getwuk oars is of wa da ierboovn stoat. A je gèn standoardwoarde ipgèeft, gèeft de module nil were vôor ounbekende tekstn.

-- Deze geevn 'nil' were:
yesno('appelsien')
yesno(5)
yesno('')

-- Deze geevn 'true' were (omda 'true' as standoard is ingereevn):
yesno('appelsien', true)
yesno(5, true)
yesno('', true)

-- Deze geevn "test" were:
yesno('appelsien', 'test')
yesno(5, 'test')

Omgoan mèi 'nil' resultoatn

[brontekst bewerken]

As joun code allêne moa strènge true of false woardn mag èn (en gèn nil verdroagt), is d'r een andige truc oem e standoard true/false af te dwiengn wanneir de woarde leeg of ounbekend is:

-- Korte code as de standoard 'false' moe zyn:
myn_variabele = yesno(waarde or false, false)
-- As 'waarde' leeg (nil) is, pakt et 'false'. 
-- As 'waarde' e roare tekst is lik "test", pakt et de default 'false'.

-- Korte code as de standoard 'true' moe zyn:
myn_variabele = yesno(waarde or true, true)
-- As 'waarde' leeg (nil) is, pakt et 'true'. 
-- As 'waarde' e roare tekst is, pakt et ôok de default 'true'.

-- 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 == 'ja'
		or val == 'joa'     -- VLS
		or val == 'yes'
		or val == 'y'
		or val == 'waar'
		or val == 'woar'    -- VLS
		or val == 'just'    -- VLS
		or val == 'true'
		or val == 't'
		or val == 'aan'
		or val == 'an'      -- VLS
		or val == 'on'
		or tonumber(val) == 1
	then
		return true
	elseif val == false
		or val == 'nee'
		or val == 'nêe'     -- VLS
		or val == 'nin'     -- VLS
		or val == 'nji'     -- VLS
		or val == 'no'
		or val == 'n'
		or val == 'onwaar'
		or val == 'onwoar'  -- VLS
		or val == 'false'
		or val == 'f'
		or val == 'uit'
		or val == 'uut'     -- VLS
		or val == 'off'
		or tonumber(val) == 0
	then
		return false
	else
		return default
	end
end