편집 요약 없음 |
편집 요약 없음 |
||
| 2번째 줄: | 2번째 줄: | ||
function p.render(frame) | function p.render(frame) | ||
local args = frame. | -- 인자 처리 (직접 #invoke 대응) | ||
local args = frame.args | |||
local html = mw.html.create('table') | local html = mw.html.create('table') | ||
html:addClass('wikitable') | html:addClass('wikitable') | ||
| 9번째 줄: | 11번째 줄: | ||
['border-collapse'] = 'collapse', | ['border-collapse'] = 'collapse', | ||
['word-break'] = 'break-all', | ['word-break'] = 'break-all', | ||
['table-layout'] = 'fixed' | ['table-layout'] = 'fixed' | ||
}) | }) | ||
-- | -- 헤더 | ||
local headerRow = html:tag('tr') | local headerRow = html:tag('tr') | ||
headerRow:tag('th'):css({['background-color'] = '#3478bf', ['color'] = 'white', ['width'] = '20%'}):wikitext('메모리 타입') | headerRow:tag('th') | ||
headerRow:tag('th'):css({['width'] = '45%'}):wikitext('메모리 이름') | :css({ ['background-color'] = '#3478bf', ['color'] = 'white', ['width'] = '20%' }) | ||
headerRow:tag('th'):css({['width'] = '35%'}):wikitext('게스트 메모리 시 참가자') | :wikitext('메모리 타입') | ||
headerRow:tag('th') | |||
:css({ ['width'] = '45%' }) | |||
:wikitext('메모리 이름') | |||
headerRow:tag('th') | |||
:css({ ['width'] = '35%' }) | |||
:wikitext('게스트 메모리 시 참가자') | |||
local i = 1 | local i = 1 | ||
local hasRow = false | |||
while args['타입' .. i] or args['이름' .. i] do | 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') | local row = html:tag('tr') | ||
row:tag('td') | |||
:css('text-align', 'center') | |||
row:tag('td'):css('text-align', 'center'):wikitext(m_type) | :wikitext(m_type) | ||
if m_guest == '' then | |||
if m_guest == '' | |||
row:tag('td') | row:tag('td') | ||
:attr('colspan', '2') | :attr('colspan', '2') | ||
| 39번째 줄: | 49번째 줄: | ||
:wikitext(m_name) | :wikitext(m_name) | ||
else | else | ||
row:tag('td') | |||
row:tag('td'):css('font-weight', 'bold'):wikitext(m_name) | :css('font-weight', 'bold') | ||
:wikitext(m_name) | |||
row:tag('td') | row:tag('td') | ||
:css('text-align', 'center') | :css('text-align', 'center') | ||
| 46번째 줄: | 57번째 줄: | ||
end | end | ||
-- | -- 상세 행 | ||
local detailRow = html:tag('tr') | 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 | i = i + 1 | ||
end | |||
-- 데이터 없으면 아무것도 출력 안 함 | |||
if not hasRow then | |||
return '' | |||
end | end | ||
2026년 1월 19일 (월) 02:50 판
| 메모리 타입 | 메모리 이름 | 게스트 메모리 시 참가자 |
|---|---|---|
| 교류 #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