편집 요약 없음 |
편집 요약 없음 |
||
| 1번째 줄: | 1번째 줄: | ||
local p={} | local p={} | ||
function p.render(f) | function p.render(f) | ||
local a, | local a,has,h={},false,mw.html.create('table') | ||
:addClass('wikitable') | |||
:css{width='100%',['border-collapse']='collapse',['table-layout']='fixed',border='none',marginBottom='20px'} | :css{width='100%',['border-collapse']='collapse',['table-layout']='fixed',border='none',marginBottom='20px'} | ||
local | local pnt=f:getParent() | ||
if | if pnt then for k,v in pairs(pnt.args) do a[k]=v end end | ||
for k,v in pairs(f.args) do a[k]=v end | for k,v in pairs(f.args) do a[k]=v end | ||
for i=1,50 do | for i=1,50 do | ||
local t,n,g,s,d=a['타입'..i]or'',a['이름'..i]or'',a['게스트'..i]or'',a['스텟'..i]or'',a['내용'..i]or'' | local t,n,g,s,d= | ||
if t~='' or n~='' then | a['타입'..i]or'', | ||
a['이름'..i]or'', | |||
a['게스트'..i]or'', | |||
a['스텟'..i]or'', | |||
a['내용'..i]or'' | |||
if t~='' or n~='' then | |||
has=true | |||
local r=h:tag('tr') | local r=h:tag('tr') | ||
r:tag('td'):css{background='#3478bf | |||
-- 타입 (중앙정렬 + 볼드 확정) | |||
r:tag('td') | |||
:css{background='#3478bf',width='20%',border='2px solid #000',borderRight='none'} | |||
:wikitext("<div style='text-align:center;font-weight:bold;color:#fff'>"..t.."</div>") | |||
if g=='' or g:match'^%s*$' then | if g=='' or g:match'^%s*$' then | ||
r:tag('td'):attr('colspan',2):css{fontWeight='bold',borderTop='2px solid #000',borderRight='2px solid #000',paddingLeft='10px'}:wikitext(n) | r:tag('td') | ||
:attr('colspan',2) | |||
:css{fontWeight='bold',borderTop='2px solid #000',borderRight='2px solid #000',paddingLeft='10px'} | |||
:wikitext(n) | |||
else | else | ||
r:tag('td'):css{fontWeight='bold',width='55%',borderTop='2px solid #000',paddingLeft='10px'}:wikitext(n) | r:tag('td') | ||
r:tag('td'):css{textAlign='center',width='25%',borderTop='2px solid #000',borderRight='2px solid #000'} | :css{fontWeight='bold',width='55%',borderTop='2px solid #000',paddingLeft='10px'} | ||
:wikitext(n) | |||
r:tag('td') | |||
:css{textAlign='center',width='25%',borderTop='2px solid #000',borderRight='2px solid #000'} | |||
:wikitext("<span style='color:#666;font-size:.9em'>with </span>"..g) | :wikitext("<span style='color:#666;font-size:.9em'>with </span>"..g) | ||
end | end | ||
h:tag('tr'):tag('td'):attr('colspan',3) | h:tag('tr'):tag('td') | ||
:attr('colspan',3) | |||
:css{background='#f0f4f9',border='2px solid #000',borderTop='none',padding='6px 12px',fontSize='.9em'} | :css{background='#f0f4f9',border='2px solid #000',borderTop='none',padding='6px 12px',fontSize='.9em'} | ||
:wikitext("'''추가 스탯:''' "..(s~='' and s or '없음')) | :wikitext("'''추가 스탯:''' "..(s~='' and s or '없음')) | ||
local c=h:tag('tr'):tag('td'):attr('colspan',3) | local c=h:tag('tr'):tag('td') | ||
:attr('colspan',3) | |||
:css{padding=0,border='2px solid #000',borderTop='none'} | :css{padding=0,border='2px solid #000',borderTop='none'} | ||
:tag('div'):addClass('mw-collapsible mw-collapsed') | :tag('div'):addClass('mw-collapsible mw-collapsed') | ||
c:tag('div'):addClass('mw-collapsible-toggle') | c:tag('div') | ||
:addClass('mw-collapsible-toggle') | |||
:css{textAlign='center',background='#eee',fontSize='.85em',padding='4px',borderTop='1px solid #ccc'} | :css{textAlign='center',background='#eee',fontSize='.85em',padding='4px',borderTop='1px solid #ccc'} | ||
:wikitext('▼ 상세') | :wikitext('▼ 상세') | ||
c:tag('div'):addClass('mw-collapsible-content') | c:tag('div') | ||
:addClass('mw-collapsible-content') | |||
:css{padding='12px',background='#fff'} | :css{padding='12px',background='#fff'} | ||
:wikitext((d~='' and d~='-') and d or '상세 내용이 없습니다.') | :wikitext((d~='' and d~='-') and d or '상세 내용이 없습니다.') | ||
end | end | ||
end | end | ||
return | |||
return has and tostring(h) | |||
or "<div style='color:red;font-weight:bold'>데이터를 찾을 수 없습니다.</div>" | |||
end | end | ||
return p | return p | ||
2026년 1월 26일 (월) 19:07 기준 최신판
교류 #1 | 반짝이는 이미테이션 | |
| 추가 스탯: 없음 | ||
▼ 상세 상세 내용이 없습니다. | ||
교류 #2 | 이상의 아이돌 | |
| 추가 스탯: 없음 | ||
▼ 상세 상세 내용이 없습니다. | ||
사용 예시
숫자를 늘리면 무한히 늘어납니다
{{#invoke:샤인 포스트 Be your Idol/캐릭터 메모리|render
|타입1 =
|이름1 =
|게스트1 =
|내용1 =
|타입2 =
|이름2 =
|게스트2 =
|내용2 =
}}
local p={}
function p.render(f)
local a,has,h={},false,mw.html.create('table')
:addClass('wikitable')
:css{width='100%',['border-collapse']='collapse',['table-layout']='fixed',border='none',marginBottom='20px'}
local pnt=f:getParent()
if pnt then for k,v in pairs(pnt.args) do a[k]=v end end
for k,v in pairs(f.args) do a[k]=v end
for i=1,50 do
local t,n,g,s,d=
a['타입'..i]or'',
a['이름'..i]or'',
a['게스트'..i]or'',
a['스텟'..i]or'',
a['내용'..i]or''
if t~='' or n~='' then
has=true
local r=h:tag('tr')
-- 타입 (중앙정렬 + 볼드 확정)
r:tag('td')
:css{background='#3478bf',width='20%',border='2px solid #000',borderRight='none'}
:wikitext("<div style='text-align:center;font-weight:bold;color:#fff'>"..t.."</div>")
if g=='' or g:match'^%s*$' then
r:tag('td')
:attr('colspan',2)
:css{fontWeight='bold',borderTop='2px solid #000',borderRight='2px solid #000',paddingLeft='10px'}
:wikitext(n)
else
r:tag('td')
:css{fontWeight='bold',width='55%',borderTop='2px solid #000',paddingLeft='10px'}
:wikitext(n)
r:tag('td')
:css{textAlign='center',width='25%',borderTop='2px solid #000',borderRight='2px solid #000'}
:wikitext("<span style='color:#666;font-size:.9em'>with </span>"..g)
end
h:tag('tr'):tag('td')
:attr('colspan',3)
:css{background='#f0f4f9',border='2px solid #000',borderTop='none',padding='6px 12px',fontSize='.9em'}
:wikitext("'''추가 스탯:''' "..(s~='' and s or '없음'))
local c=h:tag('tr'):tag('td')
:attr('colspan',3)
:css{padding=0,border='2px solid #000',borderTop='none'}
:tag('div'):addClass('mw-collapsible mw-collapsed')
c:tag('div')
:addClass('mw-collapsible-toggle')
:css{textAlign='center',background='#eee',fontSize='.85em',padding='4px',borderTop='1px solid #ccc'}
:wikitext('▼ 상세')
c:tag('div')
:addClass('mw-collapsible-content')
:css{padding='12px',background='#fff'}
:wikitext((d~='' and d~='-') and d or '상세 내용이 없습니다.')
end
end
return has and tostring(h)
or "<div style='color:red;font-weight:bold'>데이터를 찾을 수 없습니다.</div>"
end
return p