Module:Convert character width/data

From Thetacola Wiki
< Module:Convert character width
Revision as of 00:22, 15 August 2022 by Thetacola (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

This module converts a limited set of characters between halfwidth and fullwidth forms.

Usage

From half-width to full-width
{{#invoke:convert character width|full|text to convert}}
From full-width to half-width
{{#invoke:convert character width|half|text to convert}}

Examples

  • {{#invoke:convert character width|full|some text 0123456789}} → some text 0123456789
  • {{#invoke:convert character width|half|some text 0123456789}} → some text 0123456789

Support

Care should be taken when using this module with Hangul and katakana; as of September 2013 there is only limited support for katakana and no support for Hangul. Some of the more obscure punctuation characters are also not yet supported.

Data

The character data used by the module is located at Module:Convert character width/data. Fixes and updates to the data set are welcomed enthusiastically.


-- This is the data page for [[Module:Convert character width]].
-- TODO: There are quite a few missing characters. See [[Halfwidth and Fullwidth Forms (Unicode block)]] for the full list.

local convert = {
    [" "] = " ",
    ["!"] = "!",
    ['"'] = '"',
    ['#'] = '#',
    ['$'] = '$',
    ['\%'] = '%', -- This needs to be escaped, otherwise it generates invalid pattern matches.
    ['&'] = '&',
    ["'"] = "'",
    ['('] = '(',
    [')'] = ')',
    ['*'] = '*',
    ['+'] = '+',
    [','] = ',',
    ['-'] = '-',
    ['.'] = '.',
    ['/'] = '/',
    ['0'] = '0',
    ['1'] = '1',
    ['2'] = '2',
    ['3'] = '3',
    ['4'] = '4',
    ['5'] = '5',
    ['6'] = '6',
    ['7'] = '7',
    ['8'] = '8',
    ['9'] = '9',
    [':'] = ':',
    [';'] = ';',
    ['<'] = '<',
    ['='] = '=',
    ['>'] = '>',
    ['?'] = '?',
    ['@'] = '@',
    ['A'] = 'A',
    ['B'] = 'B',
    ['C'] = 'C',
    ['D'] = 'D',
    ['E'] = 'E',
    ['F'] = 'F',
    ['G'] = 'G',
    ['H'] = 'H',
    ['I'] = 'I',
    ['J'] = 'J',
    ['K'] = 'K',
    ['L'] = 'L',
    ['M'] = 'M',
    ['N'] = 'N',
    ['O'] = 'O',
    ['P'] = 'P',
    ['Q'] = 'Q',
    ['R'] = 'R',
    ['S'] = 'S',
    ['T'] = 'T',
    ['U'] = 'U',
    ['V'] = 'V',
    ['W'] = 'W',
    ['X'] = 'X',
    ['Y'] = 'Y',
    ['Z'] = 'Z',
    ['['] = '[',
    [ [[\]] ] = '\',
    [']'] = ']',
    ['^'] = '^',
    ['_'] = '_',
    ['`'] = '`',
    ['a'] = 'a',
    ['b'] = 'b',
    ['c'] = 'c',
    ['d'] = 'd',
    ['e'] = 'e',
    ['f'] = 'f',
    ['g'] = 'g',
    ['h'] = 'h',
    ['i'] = 'i',
    ['j'] = 'j',
    ['k'] = 'k',
    ['l'] = 'l',
    ['m'] = 'm',
    ['n'] = 'n',
    ['o'] = 'o',
    ['p'] = 'p',
    ['q'] = 'q',
    ['r'] = 'r',
    ['s'] = 's',
    ['t'] = 't',
    ['u'] = 'u',
    ['v'] = 'v',
    ['w'] = 'w',
    ['x'] = 'x',
    ['y'] = 'y',
    ['z'] = 'z',
    ['{'] = '{',
    ['|'] = '|',
    ['}'] = '}',
    ['~'] = '~',

--[[
    -- TODO: The following need to be converted to the correct characters.
    [''] = '⦅',
    [''] = '⦆',
    [''] = '。',
    [''] = '「',
    [''] = '」',
    [''] = '、',
    [''] = '・',
--]]

    ['ヲ'] = 'ヲ',
    ['ァ'] = 'ァ',
    ['ィ'] = 'ィ',
    ['ゥ'] = 'ゥ',
    ['ェ'] = 'ェ',
    ['ォ'] = 'ォ',
    ['ャ'] = 'ャ',
    ['ュ'] = 'ュ',
    ['ョ'] = 'ョ',
    ['ッ'] = 'ッ',
    ['ー'] = 'ー',
    ['ア'] = 'ア',
    ['イ'] = 'イ',
    ['ウ'] = 'ウ',
    ['エ'] = 'エ',
    ['オ'] = 'オ',
    ['カ'] = 'カ',
    ['キ'] = 'キ',
    ['ク'] = 'ク',
    ['ケ'] = 'ケ',
    ['コ'] = 'コ',
    ['サ'] = 'サ',
    ['シ'] = 'シ',
    ['ス'] = 'ス',
    ['セ'] = 'セ',
    ['ソ'] = 'ソ',
    ['タ'] = 'タ',
    ['チ'] = 'チ',
    ['ツ'] = 'ツ',
    ['テ'] = 'テ',
    ['ト'] = 'ト',
    ['ナ'] = 'ナ',
    ['ニ'] = 'ニ',
    ['ヌ'] = 'ヌ',
    ['ネ'] = 'ネ',
    ['ノ'] = 'ノ',
    ['ハ'] = 'ハ',
    ['ヒ'] = 'ヒ',
    ['フ'] = 'フ',
    ['ヘ'] = 'ヘ',
    ['ホ'] = 'ホ',
    ['マ'] = 'マ',
    ['ミ'] = 'ミ',
    ['ム'] = 'ム',
    ['メ'] = 'メ',
    ['モ'] = 'モ',
    ['ヤ'] = 'ヤ',
    ['ユ'] = 'ユ',
    ['ヨ'] = 'ヨ',
    ['ラ'] = 'ラ',
    ['リ'] = 'リ',
    ['ル'] = 'ル',
    ['レ'] = 'レ',
    ['ロ'] = 'ロ',
    ['ワ'] = 'ワ',
    ['ン'] = 'ン'
}

return convert