(새 문서: local p = {} function p.render(frame) local args = frame:getParent().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...) |
편집 요약 없음 |
||
| 2번째 줄: | 2번째 줄: | ||
function p.render(frame) | function p.render(frame) | ||
local args = frame.argsrgs | |||
local html = mw.html.create('table') | local html = mw.html.create('table') | ||
html:addClass('wikitable') | html:addClass('wikitable') | ||
2026년 1월 19일 (월) 02:49 판
21번째 줄에서 Lua 오류: attempt to index local 'args' (a nil value).
사용 예시
숫자를 늘리면 무한히 늘어납니다
{{#invoke:샤인 포스트 Be your Idol/캐릭터 메모리|render
|타입1 =
|이름1 =
|게스트1 =
|내용1 =
|타입2 =
|이름2 =
|게스트2 =
|내용2 =
}}
local p = {}
function p.render(frame)
local args = frame.argsrgs
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
while args['타입' .. i] or args['이름' .. i] do
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')
-- 1. 메모리 타입 셀
row:tag('td'):css('text-align', 'center'):wikitext(m_type)
-- 2. 게스트 유무에 따른 이름 및 참가자 셀 처리
if m_guest == '' or m_guest == nil then
-- 게스트가 없을 때: 이름 셀을 2칸 합침
row:tag('td')
:attr('colspan', '2')
:css('font-weight', 'bold')
:wikitext(m_name)
else
-- 게스트가 있을 때: 각각 표시하고 'with' 추가
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
-- 세 번째 행: 상세 내용 (전체 합침)
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)
i = i + 1
end
return tostring(html)
end
return p