편집 요약 없음
편집 요약 없음
1번째 줄: 1번째 줄:
local mw = mw
local mw = mw
local ustring = mw.ustring
local ustring = mw.ustring
local getArgs = require('Module:Arguments').getArgs --- frame 변수 처리
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
p.unicodeBlock = require('Module:UnicodeBlock').unicodeBlock
----------------------  {{유니코드문자}}  --------------------------
----------------------  {{유니코드문자}}  --------------------------
---@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 p.unicodeBlock(curr)
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
if args['순서반전'] then
local format =
tr = ustring.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]], lang, prevlink, lang, curr, p.code(curr), lang, nextlink, tr)
<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([[%s
tr = ustring.format("%s" .. format, tr, lang, prevlink, lang, curr, p.code(curr), lang, nextlink)
<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>
<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>]], 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