편집 요약 없음 |
편집 요약 없음 |
||
| 1번째 줄: | 1번째 줄: | ||
local mw = mw | local mw = mw | ||
local ustring = mw.ustring | local ustring = mw.ustring | ||
local p = {} | local p = {} | ||
| 8번째 줄: | 7번째 줄: | ||
function p.tochar(code) | function p.tochar(code) | ||
return ustring.char(tonumber(code:gsub(" ", ""):gsub("[Uu][+]", "0x"), 16)) | return ustring.char(tonumber(code:gsub(" ", ""):gsub("[Uu][+]", "0x"), 16)) | ||
end | |||
------------------------- codepoint (frame) ------------------------------------------ | |||
---return 'U+ABCD' | |||
---@param frame table | |||
---@return string | |||
function p.tounicode(frame) | |||
return 'U+' .. string.format('%x', ustring.codepoint(frame.args[1])):upper() | |||
end | end | ||
------------------------- codepoint ------------------------------------------ | ------------------------- codepoint ------------------------------------------ | ||
---문자 코드를 반환합니다. | ---문자 코드를 반환합니다. | ||
---@param data table | string table : frame, string : char | ---@param data table | string table : frame, string : char | ||
| 18번째 줄: | 24번째 줄: | ||
---@return string | ---@return string | ||
function p.code(data, base, offset) | function p.code(data, base, offset) | ||
local getArgs = require('Module:Arguments').getArgs --- frame 인수 처리 | |||
local char | local char | ||
if type(data) == 'table' then | if type(data) == 'table' then | ||
| 47번째 줄: | 54번째 줄: | ||
---@return string | ---@return string | ||
function p.nextcode(data) | function p.nextcode(data) | ||
local getArgs = require('Module:Arguments').getArgs --- frame 인수 처리 | |||
local char | local char | ||
if type(data) == 'table' then | if type(data) == 'table' then | ||
| 65번째 줄: | 73번째 줄: | ||
---@return string | ---@return string | ||
function p.prevcode(data) | function p.prevcode(data) | ||
local getArgs = require('Module:Arguments').getArgs --- frame 인수 처리 | |||
local char | local char | ||
if type(data) == 'table' then | if type(data) == 'table' then | ||
| 83번째 줄: | 92번째 줄: | ||
---@return string nextchar | ---@return string nextchar | ||
function p.nextchar(data) | function p.nextchar(data) | ||
local getArgs = require('Module:Arguments').getArgs --- frame 인수 처리 | |||
local char | local char | ||
if type(data) == 'table' then | if type(data) == 'table' then | ||
| 101번째 줄: | 111번째 줄: | ||
---@return string prevchar | ---@return string prevchar | ||
function p.prevchar(data) | function p.prevchar(data) | ||
local getArgs = require('Module:Arguments').getArgs --- frame 인수 처리 | |||
local char | local char | ||
if type(data) == 'table' then | if type(data) == 'table' then | ||
| 113번째 줄: | 124번째 줄: | ||
end | end | ||
end | end | ||
---------------------- {{유니코드문자}} -------------------------- | ---------------------- {{유니코드문자}} -------------------------- | ||
---@param frame table | ---@param frame table | ||
---@return string | ---@return string | ||
function p.unicodechar(frame) | function p.unicodechar(frame) | ||
local unicodeBlock = require('Module:UnicodeBlock').unicodeBlock | |||
local getArgs = require('Module:Arguments').getArgs --- frame 인수 처리 | |||
---@type table | ---@type table | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
| 128번째 줄: | 140번째 줄: | ||
local charname = args['이름'] or mw.title.getCurrentTitle().prefixedText | local charname = args['이름'] or mw.title.getCurrentTitle().prefixedText | ||
local curr = args[1] or args['기호'] or args['문자'] or nil | local curr = args[1] or args['기호'] or args['문자'] or nil | ||
local eng = args['영어이름'] or | local eng = args['영어이름'] or unicodeBlock(curr) | ||
local lang = args['lang'] or 'ko' | local lang = args['lang'] or 'ko' | ||
local prefix = args['경로'] or '' | local prefix = args['경로'] or '' | ||
| 206번째 줄: | 218번째 줄: | ||
end | end | ||
end | end | ||
local format = | |||
[[<td class='unicodechar-prev' style="width: 7em;font-size:1.2em;" lang="%s">%s</td> | |||
<td class='unicodechar-prev' style="width: 7em;font-size:1.2em;" lang="%s">%s</td> | |||
<td class='unicodechar-char' style="width: 6em"><div style="font-size: 1.8em;line-height: 1.4em;"><b lang="%s">%s</b></div> | <td class='unicodechar-char' style="width: 6em"><div style="font-size: 1.8em;line-height: 1.4em;"><b lang="%s">%s</b></div> | ||
<div style="font-size:80%%; color: gray; ">%s</div></td> | <div style="font-size:80%%; color: gray; ">%s</div></td> | ||
<td class='unicodechar-next' style="width: 7em;font-size:1.2em;" lang="%s">%s</td>%s | <td class='unicodechar-next' style="width: 7em;font-size:1.2em;" lang="%s">%s</td>]] | ||
if args['순서반전'] then | |||
tr = ustring.format(format .. "%s", lang, prevlink, lang, curr, p.code(curr), lang, nextlink, tr) | |||
else | else | ||
tr = ustring.format( | tr = ustring.format("%s" .. format, tr, lang, prevlink, lang, curr, p.code(curr), lang, nextlink) | ||
end | end | ||
return htmlroot:node(tr) | return tostring(htmlroot:node(tr)) | ||
end | end | ||
return p | return p | ||