| 메모리 타입 | 메모리 이름 | 게스트 메모리 시 참가자 |
|---|---|---|
| 교류 #1 | 반짝이는 이미테이션 | |
| - | ||
| 교류 #2 | 이상의 아이돌 | |
| - | ||
사용 예시
숫자를 늘리면 무한히 늘어납니다
{{#invoke:샤인 포스트 Be your Idol/캐릭터 메모리|render
|타입1 =
|이름1 =
|게스트1 =
|내용1 =
|타입2 =
|이름2 =
|게스트2 =
|내용2 =
}}
local p = {}
function p.render(frame)
-- 인자 처리 (직접 #invoke 대응)
local args = frame.args
local html = mw.html.create('table')
html:addClass('wikitable')
:css({
['width'] = '100%',
['border-collapse'] = 'collapse',
['word-break'] = 'break-all',
['table-layout'] = 'fixed'
})
-- 헤더
local headerRow = html:tag('tr')
headerRow:tag('th')
:css({ ['background-color'] = '#3478bf', ['color'] = 'white', ['width'] = '20%' })
:wikitext('메모리 타입')
headerRow:tag('th')
:css({ ['width'] = '45%' })
:wikitext('메모리 이름')
headerRow:tag('th')
:css({ ['width'] = '35%' })
:wikitext('게스트 메모리 시 참가자')
local i = 1
local hasRow = false
while args['타입' .. i] or args['이름' .. i] do
hasRow = true
local m_type = args['타입' .. i] or ''
local m_name = args['이름' .. i] or ''
local m_guest = args['게스트' .. i] or ''
local m_detail = args['내용' .. i] or ''
-- 요약 행
local row = html:tag('tr')
row:tag('td')
:css('text-align', 'center')
:wikitext(m_type)
if m_guest == '' then
row:tag('td')
:attr('colspan', '2')
:css('font-weight', 'bold')
:wikitext(m_name)
else
row:tag('td')
:css('font-weight', 'bold')
:wikitext(m_name)
row:tag('td')
:css('text-align', 'center')
:wikitext('<span style="color:#666; font-size:0.9em;">with</span> ' .. m_guest)
end
-- 상세 행
if m_detail ~= '' then
local detailRow = html:tag('tr')
detailRow:tag('td')
:attr('colspan', '3')
:css({
['padding'] = '12px',
['background-color'] = '#ffffff',
['border-bottom'] = '2px solid #3478bf'
})
:wikitext(m_detail)
end
i = i + 1
end
-- 데이터 없으면 아무것도 출력 안 함
if not hasRow then
return ''
end
return tostring(html)
end
return p