Module:Char
This module checks for some critical leading characters in the passed string,
and replaces them by their decimal numeric character references,
to avoid their interpretion as wiki syntax, and returns the (altered) string.
It can be invoked directly by either "Char|substitute" or shorter by "Char|subst"
or by using the Template:Charsubst: {{Charsubst|1= }}
heavily used module, because of "tle/parm" was not recognized as a supported language code."tle/parm" was not recognized as a supported language code. "tle/parm" was not recognized as a supported language code., "igen/sub" was not recognized as a supported language code."igen/sub" was not recognized as a supported language code. "igen/sub" was not recognized as a supported language code. and "igen/top" was not recognized as a supported language code."igen/top" was not recognized as a supported language code. "igen/top" was not recognized as a supported language code..
-- 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 '#' .. mw.ustring.sub( char, 2, #char );
elseif mw.ustring.sub ( char, 1, 1 ) == '*' then
return '*' .. mw.ustring.sub( char, 2, #char );
elseif mw.ustring.sub ( char, 1, 1 ) == ':' then
return ':' .. mw.ustring.sub( char, 2, #char );
elseif mw.ustring.sub ( char, 1, 1 ) == ';' then
return ';' .. 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;