| 교류 #1 | 반짝이는 이미테이션 | |
| 추가 스탯: 없음 | ||
▼ 상세 내용 보기 / 닫기 ▼ 상세 내용이 없습니다. | ||
| 교류 #2 | 이상의 아이돌 | |
| 추가 스탯: 없음 | ||
▼ 상세 내용 보기 / 닫기 ▼ 상세 내용이 없습니다. | ||
사용 예시
숫자를 늘리면 무한히 늘어납니다
{{#invoke:샤인 포스트 Be your Idol/캐릭터 메모리|render
|타입1 =
|이름1 =
|게스트1 =
|내용1 =
|타입2 =
|이름2 =
|게스트2 =
|내용2 =
}}
local p = {}
function p.render(frame)
local args = {}
local parent = frame:getParent()
if parent then
for k, v in pairs(parent.args) do args[k] = v end
end
for k, v in pairs(frame.args) do args[k] = v end
local html = mw.html.create('table')
:addClass('wikitable')
:css({
width = '100%',
['border-collapse'] = 'collapse',
['table-layout'] = 'fixed',
border = 'none',
['margin-bottom'] = '20px'
})
local hasAnyData = false
for i = 1, 50 do
local m_type = args['타입' .. i] or ''
local m_name = args['이름' .. i] or ''
local m_guest = args['게스트' .. i] or ''
local m_stat = args['스텟' .. i] or ''
local m_detail = args['내용' .. i] or ''
if m_type ~= '' or m_name ~= '' or m_guest ~= '' or m_detail ~= '' then
hasAnyData = true
local row = html:tag('tr')
row:tag('td')
:css({
['background-color'] = '#3478bf',
['color'] = 'white',
['font-weight'] = 'bold',
['text-align'] = 'center',
['width'] = '20%',
['border-top'] = '2px solid #000',
['border-left'] = '2px solid #000'
})
:wikitext(m_type)
if m_guest == '' or m_guest == nil or m_guest:match("^%s*$") then
row:tag('td')
:attr('colspan', '2')
:css({
['font-weight'] = 'bold',
['border-top'] = '2px solid #000',
['border-right'] = '2px solid #000',
['padding-left'] = '10px'
})
:wikitext(m_name)
else
row:tag('td')
:css({
['font-weight'] = 'bold',
['width'] = '55%',
['border-top'] = '2px solid #000',
['padding-left'] = '10px'
})
:wikitext(m_name)
local guestCell = row:tag('td')
:css({
['text-align'] = 'center',
['width'] = '25%',
['border-top'] = '2px solid #000',
['border-right'] = '2px solid #000'
})
guestCell:tag('span'):css({ ['color'] = '#666', ['font-size'] = '0.9em' }):wikitext('with ')
guestCell:wikitext(m_guest)
end
local statRow = html:tag('tr')
statRow:tag('td')
:attr('colspan', '3')
:css({
['background-color'] = '#f0f4f9',
['border-left'] = '2px solid #000',
['border-right'] = '2px solid #000',
['padding'] = '6px 12px',
['font-size'] = '0.9em'
})
:wikitext("'''추가 스탯:''' " .. (m_stat ~= '' and m_stat or '없음'))
local detailRow = html:tag('tr')
local detailCell = detailRow:tag('td')
:attr('colspan', '3')
:css({
['padding'] = '0',
['border-left'] = '2px solid #000',
['border-right'] = '2px solid #000',
['border-bottom'] = '2px solid #000'
})
local collapse = detailCell:tag('div')
:addClass('mw-collapsible mw-collapsed')
:css({ ['width'] = '100%' })
collapse:tag('div')
:addClass('mw-collapsible-toggle')
:css({
['float'] = 'none',
['text-align'] = 'center',
['background'] = '#eee',
['font-size'] = '0.85em',
['padding'] = '4px',
['border-top'] = '1px solid #ccc',
['cursor'] = 'pointer'
})
:wikitext("'''▼ 상세 내용 보기 / 닫기 ▼'''")
collapse:tag('div')
:addClass('mw-collapsible-content')
:css({
['padding'] = '12px',
['background'] = '#fff'
})
:wikitext((m_detail ~= '' and m_detail ~= '-') and m_detail or '상세 내용이 없습니다.')
end
end
if not hasAnyData then
return '<div style="color:red; font-weight:bold;">데이터를 찾을 수 없습니다.</div>'
end
return tostring(html)
end
return p