모듈:KoreanPresidents
이 모듈에 대한 설명문서는 모듈:KoreanPresidents/설명문서에서 만들 수 있습니다
local p = {}
local presidents = {
[1] = { name = "이승만" },
[2] = { name = "이승만" },
[3] = { name = "이승만" },
[4] = { name = "윤보선" },
[5] = { name = "박정희" },
[6] = { name = "박정희" },
[7] = { name = "박정희" },
[8] = { name = "박정희" },
[9] = { name = "박정희" },
[10] = { name = "최규하" },
[11] = { name = "전두환" },
[12] = { name = "전두환" },
[13] = { name = "노태우" },
[14] = { name = "김영삼" },
[15] = { name = "김대중" },
[16] = { name = "노무현" },
[17] = { name = "이명박" },
[18] = { name = "박근혜" },
[19] = { name = "문재인" },
[20] = { name = "윤석열" },
[21] = { name = "이재명" }
}
local function link(name)
if not name then
return "—"
end
return string.format("[[%s]]", name)
end
-- 이전 다른 대통령 찾기
local function findPrev(n)
local curr = presidents[n].name
for i = n - 1, 1, -1 do
if presidents[i].name ~= curr then
return presidents[i].name
end
end
end
-- 다음 다른 대통령 찾기
local function findNext(n)
local curr = presidents[n].name
for i = n + 1, #presidents do
if presidents[i].name ~= curr then
return presidents[i].name
end
end
end
local function findRange(n)
local name = presidents[n].name
local start = n
local finish = n
-- 앞쪽 탐색
for i = n - 1, 1, -1 do
if presidents[i].name == name then
start = i
else
break
end
end
-- 뒤쪽 탐색
for i = n + 1, #presidents do
if presidents[i].name == name then
finish = i
else
break
end
end
return start, finish
end
function p.render(frame)
local n = tonumber(frame.args[1])
if not n or not presidents[n] then
return "잘못된 대수입니다."
end
local prev = link(findPrev(n))
local curr = link(presidents[n].name)
local next = link(findNext(n))
local s, e = findRange(n)
local termText
if s == e then
termText = string.format("제%d대", n)
else
termText = string.format("제%d–%d대", s, e)
end
return string.format([[{| class="wikitable" style="border: 2px solid #005ba6; text-align: center; margin-left:auto; margin-right:auto; width:100%%; max-width:400px;"
! colspan="3" style="background: linear-gradient(to right,#00467f,#005ba6 20%%,#005ba6 80%%,#00467f); color:#ffc224; padding: 7px;" | 대한민국 대통령
|-
| width="33%%" | 전임<br>%s
| width="33%%" style="background: var(--altbg);" | %s<br>'''%s'''
| width="33%%" | 후임<br>%s
|}
]], prev, termText, curr, next)
end
return p