Module:CharSwatch: Difference between revisions
Jump to navigation
Jump to search
(Fix pixel alignment issue, tweak padding again) |
(Reverting fix for blurry characters, as it doesn't actually fix anything :-() Tag: Undo |
||
Line 10: | Line 10: | ||
function html_swatch(i) | function html_swatch(i) | ||
local span = mw.html.create("span") | |||
span:css({ | |||
["background-color"] = "#555", | ["background-color"] = "#555", | ||
["box-shadow"] = "0 0 1px #808080", | ["box-shadow"] = "0 0 1px #808080", | ||
Line 31: | Line 21: | ||
["min-height"] = "14px", | ["min-height"] = "14px", | ||
["min-width"] = "8px", | ["min-width"] = "8px", | ||
padding = " | padding = "2px", | ||
["vertical-align"] = "middle" | ["vertical-align"] = "middle" | ||
}) | }) | ||
span:wikitext(char_to_unicode(i)) | |||
return | return span | ||
end | end | ||
Revision as of 06:05, 17 January 2021
Documentation for this module may be created at Module:CharSwatch/doc
local p = {} function p.swatch(frame) local char = tonumber(frame.args[1]) return string.format( "[[char|#char]] %d %s (0x%02X)", char, tostring(html_swatch(char)), char ) end function html_swatch(i) local span = mw.html.create("span") span:css({ ["background-color"] = "#555", ["box-shadow"] = "0 0 1px #808080", color = "#fff", display = "inline-block", font = "14px EGA8", height = "1em", ["line-height"] = "100%", ["min-height"] = "14px", ["min-width"] = "8px", padding = "2px", ["vertical-align"] = "middle" }) span:wikitext(char_to_unicode(i)) return span end local unicode_table = { [0] = " ", -- should be null, display as space [1] = "☺", [2] = "☻", [3] = "♥", [4] = "♦", [5] = "♣", [6] = "♠", [7] = "•", [8] = "◘", [9] = "○", [10] = "◙", [11] = "♂", [12] = "♀", [13] = "♪", [14] = "♫", [15] = "☼", [16] = "►", [17] = "◄", [18] = "↕", [19] = "‼", [20] = "¶", [21] = "§", [22] = "▬", [23] = "↨", [24] = "↑", [25] = "↓", [26] = "→", [27] = "←", [28] = "∟", [29] = "↔", [30] = "▲", [31] = "▼", [127] = "⌂", [128] = "Ç", [129] = "ü", [130] = "é", [131] = "â", [132] = "ä", [133] = "à", [134] = "å", [135] = "ç", [136] = "ê", [137] = "ë", [138] = "è", [139] = "ï", [140] = "î", [141] = "ì", [142] = "Ä", [143] = "Å", [144] = "É", [145] = "æ", [146] = "Æ", [147] = "ô", [148] = "ö", [149] = "ò", [150] = "û", [151] = "ù", [152] = "ÿ", [153] = "Ö", [154] = "Ü", [155] = "¢", [156] = "£", [157] = "¥", [158] = "₧", [159] = "ƒ", [160] = "á", [161] = "í", [162] = "ó", [163] = "ú", [164] = "ñ", [165] = "Ñ", [166] = "ª", [167] = "º", [168] = "¿", [169] = "⌐", [170] = "¬", [171] = "½", [172] = "¼", [173] = "¡", [174] = "«", [175] = "»", [176] = "░", [177] = "▒", [178] = "▓", [179] = "│", [180] = "┤", [181] = "╡", [182] = "╢", [183] = "╖", [184] = "╕", [185] = "╣", [186] = "║", [187] = "╗", [188] = "╝", [189] = "╜", [190] = "╛", [191] = "┐", [192] = "└", [193] = "┴", [194] = "┬", [195] = "├", [196] = "─", [197] = "┼", [198] = "╞", [199] = "╟", [200] = "╚", [201] = "╔", [202] = "╩", [203] = "╦", [204] = "╠", [205] = "═", [206] = "╬", [207] = "╧", [208] = "╨", [209] = "╤", [210] = "╥", [211] = "╙", [212] = "╘", [213] = "╒", [214] = "╓", [215] = "╫", [216] = "╪", [217] = "┘", [218] = "┌", [219] = "█", [220] = "▄", [221] = "▌", [222] = "▐", [223] = "▀", [224] = "ɑ", [225] = "ϐ", [226] = "ᴦ", [227] = "ᴨ", [228] = "∑", [229] = "ơ", [230] = "µ", [231] = "ᴛ", [232] = "ɸ", [233] = "ϴ", [234] = "Ω", [235] = "ẟ", [236] = "∞", [237] = "∅", [238] = "∈", [239] = "∩", [240] = "≡", [241] = "±", [242] = "≥", [243] = "≤", [244] = "⌠", [245] = "⌡", [246] = "÷", [247] = "≈", [248] = "°", [249] = "∙", [250] = "·", [251] = "√", [252] = "ⁿ", [253] = "²", [254] = "■", [255] = " " } function char_to_unicode(i) if i < 0 or i > 255 then error("char index out of range: " .. i) end if i >= 32 and i <= 126 then -- Handle regular ASCII characters return string.char(i) end return unicode_table[i] end return p