Permanently protected module
From Wikipedia, the free encyclopedia


require('strict')

local p = {}



local function _getBoolean( boolean_str )

	-- from: module:String; adapted

	-- requires an explicit true

	local boolean_value



	if type( boolean_str ) == 'string' then

		boolean_str = boolean_str:lower()

		if boolean_str == 'true' or boolean_str == 'yes' or boolean_str == '1' then

			boolean_value = true

		else

			boolean_value = false

		end

	elseif type( boolean_str ) == 'boolean' then

		boolean_value = boolean_str

	else

		boolean_value = false

	end

	return boolean_value

end



function p.decode( frame )

	local s = frame.args's' or ''

	local subset_only = _getBoolean(frame.args'subset_only' or false)



	return p._decode( s, subset_only )

end



function p._decode( s, subset_only )

	-- U+2009 THIN SPACE: workaround for bug: HTML entity   is decoded incorrect. Entity   gets decoded properly

	s = mw.ustring.gsub( s, ' ', ' ' )

	-- U+03B5 ε GREEK SMALL LETTER EPSILON: workaround for bug (phab:T328840): HTML entity ε is decoded incorrect for gsub(). Entity ε gets decoded properly

	s = mw.ustring.gsub( s, 'ε', 'ε' )



	local ret = mw.text.decode( s, not subset_only )



	return ret

end



function p.encode( frame )

	local s = frame.args's' or ''

	local charset = frame.args'charset'



	return p._encode( s, charset )

end



function p._encode( s, charset )

	-- example: charset = '_&©−°\\\"\'\=' -- do escape with backslash not %;

	local ret



	if charset and charset ~= '' then

		ret = mw.text.encode( s, charset )

	else

		-- use default: chartset = '<>&"\' ' (outer quotes = lua required; space = NBSP)

		ret = mw.text.encode( s )

	end 

	

	return ret

end



return p
Permanently protected module
From Wikipedia, the free encyclopedia


require('strict')

local p = {}



local function _getBoolean( boolean_str )

	-- from: module:String; adapted

	-- requires an explicit true

	local boolean_value



	if type( boolean_str ) == 'string' then

		boolean_str = boolean_str:lower()

		if boolean_str == 'true' or boolean_str == 'yes' or boolean_str == '1' then

			boolean_value = true

		else

			boolean_value = false

		end

	elseif type( boolean_str ) == 'boolean' then

		boolean_value = boolean_str

	else

		boolean_value = false

	end

	return boolean_value

end



function p.decode( frame )

	local s = frame.args's' or ''

	local subset_only = _getBoolean(frame.args'subset_only' or false)



	return p._decode( s, subset_only )

end



function p._decode( s, subset_only )

	-- U+2009 THIN SPACE: workaround for bug: HTML entity &thinsp; is decoded incorrect. Entity &ThinSpace; gets decoded properly

	s = mw.ustring.gsub( s, '&thinsp;', '&ThinSpace;' )

	-- U+03B5 ε GREEK SMALL LETTER EPSILON: workaround for bug (phab:T328840): HTML entity &epsilon; is decoded incorrect for gsub(). Entity &epsi; gets decoded properly

	s = mw.ustring.gsub( s, '&epsilon;', '&epsi;' )



	local ret = mw.text.decode( s, not subset_only )



	return ret

end



function p.encode( frame )

	local s = frame.args's' or ''

	local charset = frame.args'charset'



	return p._encode( s, charset )

end



function p._encode( s, charset )

	-- example: charset = '_&©−°\\\"\'\=' -- do escape with backslash not %;

	local ret



	if charset and charset ~= '' then

		ret = mw.text.encode( s, charset )

	else

		-- use default: chartset = '<>&"\' ' (outer quotes = lua required; space = NBSP)

		ret = mw.text.encode( s )

	end 

	

	return ret

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook