Module:Convert character width: Difference between revisions
From WWII Archives
w>MusikBot II m (Changed protection settings for "Module:Convert character width": High-risk template or module: 2783 transclusions (more info) ([Edit=Require extended confirmed access] (indefinite) [Move=Require administrator access] (indefinite))) |
Paul Sidle (talk | contribs) m (1 revision imported) |
||
(No difference)
|
Latest revision as of 19:43, 19 March 2023
Documentation for this module may be created at Module:Convert character width/doc
-- This module converts support characters from half-width to full-width, and vice versa. -- See [[Halfwidth and fullwidth forms]] for an explanation of half- and full-width characters. -- @todo FIXME: Needs more characters adding, needs support for diacritic marks. local data = mw.loadData( 'Module:Convert character width/data' ) local p = {} -- Converts one half-width character to one full-width character. local function getFull( s ) return data[ s ] or s end -- Converts one full-width character to one half-width character. local function getHalf( s ) for half, full in pairs( data ) do if s == full then return half end end return s end -- Converts multiple half-width characters to full-width characters. function p.full( frame ) local s = type( frame ) == 'table' and frame.args and frame.args[ 1 ] or frame s = type( s ) == 'number' and tostring( s ) or s if type( s ) ~= 'string' then return end return ( mw.ustring.gsub( s, '.', getFull ) ) end -- Converts multiple full-width characters to half-width characters. function p.half( frame ) local s = type( frame ) == 'table' and frame.args and frame.args[ 1 ] or frame s = type( s ) == 'number' and tostring( s ) or s if type( s ) ~= 'string' then return end return ( mw.ustring.gsub( s, '.', getHalf ) ) end return p