Module:Char

-- This function can substitute some critical leading characters -- by their decimal numeric character references -- to avoid their interpretion as wiki syntax

local ncr = {}

-- function: removes characters at the start of the string: '#', '*', ':', ';' function ncr.subst     ( frame ) local gpar = frame.args local char = '' if gpar then char = mw.text.trim ( gpar[1] )-- global else	 char = mw.text.trim ( frame )	-- local end if mw.ustring.sub ( char, 1, 1 ) == '#' then return '&#35;' .. mw.ustring.sub( char, 2, #char ); elseif mw.ustring.sub ( char, 1, 1 ) == '*' then return '&#42;' .. mw.ustring.sub( char, 2, #char ); elseif mw.ustring.sub ( char, 1, 1 ) == ':' then return '&#58;' .. mw.ustring.sub( char, 2, #char ); elseif mw.ustring.sub ( char, 1, 1 ) == ';' then return '&#59;' .. mw.ustring.sub( char, 2, #char ); else return char; end end -- end function subst

-- alias long function name for abbreviation function ncr.substitute ( frame ) local gpar = frame.args return ncr.subst ( gpar[1] ); end -- end function substitute

-- function: removes characters: '"', '&', "'", '<', '=', '>', '[', ']', '{', '|', '}' function ncr.nowiki ( frame )	local gpar = frame.args	return mw.text.nowiki( gpar[1] ); end -- end function nowiki

return ncr;