익명
×
새 문서 만들기
여기에 문서 제목을 쓰세요:
We currently have 962 articles on 루리위키. Type your article name above or click on one of the titles below and start writing!



962Articles

모듈:샤인 포스트 Be your Idol/캐릭터 메모리: 두 판 사이의 차이

편집 요약 없음
편집 요약 없음
1번째 줄: 1번째 줄:
local p={}
local p={}
 
function p.render(f)
function p.render(frame)
local a,has={},false
    local args,has={},false
local pnt=f:getParent()
    local parent=frame:getParent()
if pnt then for k,v in pairs(pnt.args) do a[k]=v end end
    if parent then for k,v in pairs(parent.args) do args[k]=v end end
for k,v in pairs(f.args) do a[k]=v end
    for k,v in pairs(frame.args) do args[k]=v end
local h=mw.html.create('table'):addClass('wikitable'):css{width='100%',['border-collapse']='collapse',['table-layout']='fixed',border='none',marginBottom='20px'}
 
for i=1,50 do
    local html=mw.html.create('table'):addClass('wikitable'):css{width='100%',['border-collapse']='collapse',['table-layout']='fixed',border='none',['margin-bottom']='20px'}
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
    -- 데이터 누락 방지를 위해 for문 권장 (50번까지 스캔)
has=true
    for i=1,50 do
local r=h:tag('tr')
        local t,n,g,s,d=args['타입'..i] or '',args['이름'..i] or '',args['게스트'..i] or '',args['스텟'..i] or '',args['내용'..i] or ''
r:tag('td'):css{background='#3478bf',color='#fff',fontWeight='bold',textAlign='center',width='20%',border='2px solid #000',borderRight='none'}:wikitext(t)
       
if g=='' or g:match'^%s*$' then
        if t~='' or n~='' then
r:tag('td'):attr('colspan',2):css{fontWeight='bold',borderTop='2px solid #000',borderRight='2px solid #000',paddingLeft='10px'}:wikitext(n)
            has=true
else
            local r=html:tag('tr')
r:tag('td'):css{fontWeight='bold',width='55%',borderTop='2px solid #000',paddingLeft='10px'}:wikitext(n)
            r: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(t)
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
            if g=='' or g:match("^%s*$") then
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 '없음'))
                r:tag('td'):attr('colspan','2'):css{['font-weight']='bold',['border-top']='2px solid #000',['border-right']='2px solid #000',['padding-left']='10px'}:wikitext(n)
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')
            else
c:tag('div'):addClass('mw-collapsible-toggle'):css{textAlign='center',background='#eee',fontSize='.85em',padding='4px',borderTop='1px solid #ccc'}:wikitext('▼ 상세')
                r:tag('td'):css{['font-weight']='bold',width='55%',['border-top']='2px solid #000',['padding-left']='10px'}:wikitext(n)
c:tag('div'):addClass('mw-collapsible-content'):css{padding='12px',background='#fff'}:wikitext((d~='' and d~='-') and d or '상세 내용이 없습니다.')
                r:tag('td'):css{['text-align']='center',width='25%',['border-top']='2px solid #000',['border-right']='2px solid #000'}:wikitext("<span style='color:#666;font-size:0.9em'>with </span>"..g)
end
            end
end
 
return has and tostring(h) or "<div style='color:red;fontWeight:bold'>데이터를 찾을 수 없습니다.</div>"
            html:tag('tr'):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("'''추가 스탯:''' "..(s~='' and s or '없음'))
 
            local c=html:tag('tr'):tag('td'):attr('colspan','3'):css{padding='0',['border-left']='2px solid #000',['border-right']='2px solid #000',['border-bottom']='2px solid #000'}:tag('div'):addClass('mw-collapsible mw-collapsed')
            c:tag('div'):addClass('mw-collapsible-toggle'):css{['text-align']='center',background='#eee',['font-size']='0.85em',padding='4px',['border-top']='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(html) or "<div style='color:red;font-weight:bold'>데이터를 찾을 수 없습니다.</div>"
end
end
return p
return p

2026년 1월 26일 (월) 18:46 판

교류 #1반짝이는 이미테이션
추가 스탯: 없음
▼ 상세
상세 내용이 없습니다.
교류 #2이상의 아이돌
추가 스탯: 없음
▼ 상세
상세 내용이 없습니다.

사용 예시

숫자를 늘리면 무한히 늘어납니다

{{#invoke:샤인 포스트 Be your Idol/캐릭터 메모리|render
|타입1 = 
|이름1 = 
|게스트1 =
|내용1 = 

|타입2 = 
|이름2 = 
|게스트2 = 
|내용2 = 
}}

local p={}
function p.render(f)
local a,has={},false
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
local h=mw.html.create('table'):addClass('wikitable'):css{width='100%',['border-collapse']='collapse',['table-layout']='fixed',border='none',marginBottom='20px'}
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',color='#fff',fontWeight='bold',textAlign='center',width='20%',border='2px solid #000',borderRight='none'}:wikitext(t)
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;fontWeight:bold'>데이터를 찾을 수 없습니다.</div>"
end
return p