익명
×
새 문서 만들기
여기에 문서 제목을 쓰세요:
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(frame)
function p.render(frame)
     local args = {}
     local args={}
     local parent = frame:getParent()
     local parent=frame:getParent()
     if parent then
     if parent then for k,v in pairs(parent.args) do args[k]=v end end
        for k, v in pairs(parent.args) do args[k] = v end
     for k,v in pairs(frame.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')
     local html=mw.html.create('table')
         :addClass('wikitable')
         :addClass('wikitable')
         :css({
         :css{
             width = '100%',
             width='100%',
             ['border-collapse'] = 'collapse',
             ['border-collapse']='collapse',
             ['table-layout'] = 'fixed',
             ['table-layout']='fixed',
             border = 'none',
             border='none',
             ['margin-bottom'] = '20px'
             ['margin-bottom']='20px'
         })
         }
 
    local hasAnyData = false


     for i = 1, 50 do
     local i,has=1,false
         local m_type  = args['타입' .. i]   or ''
    while args['타입'..i] or args['이름'..i] do
         local m_name  = args['이름' .. i]   or ''
         local t=args['타입'..i] or ''
         local m_guest  = args['게스트' .. i] or ''
         local n=args['이름'..i] or ''
         local m_stat  = args['스텟' .. i]   or ''
         local g=args['게스트'..i] or ''
         local m_detail = args['내용' .. i]   or ''
         local s=args['스텟'..i] or ''
         local d=args['내용'..i] or ''


         if m_type ~= '' or m_name ~= '' or m_guest ~= '' or m_detail ~= '' then
         if t~='' or n~='' then
             hasAnyData = true
             has=true
            local r=html:tag('tr')


             local row = html:tag('tr')
             r:tag('td')
            row:tag('td')
                 :css{
                 :css({
                     ['background-color']='#3478bf',
                     ['background-color'] = '#3478bf',
                     color='white',
                     ['color'] = 'white',
                     ['font-weight']='bold',
                     ['font-weight'] = 'bold',
                     ['text-align']='center',
                     ['text-align'] = 'center',
                     width='20%',
                     ['width'] = '20%',
                     ['border-top']='2px solid #000',
                     ['border-top'] = '2px solid #000',
                     ['border-left']='2px solid #000'
                     ['border-left'] = '2px solid #000'
                 }
                 })
                 :wikitext(t)
                 :wikitext(m_type)


             if m_guest == '' or m_guest == nil or m_guest:match("^%s*$") then
             if g=='' then
                 row:tag('td')
                 r:tag('td')
                     :attr('colspan', '2')
                     :attr('colspan','2')
                     :css({
                     :css{
                         ['font-weight'] = 'bold',
                         ['font-weight']='bold',
                         ['border-top'] = '2px solid #000',
                         ['border-top']='2px solid #000',
                         ['border-right'] = '2px solid #000',
                         ['border-right']='2px solid #000',
                         ['padding-left'] = '10px'
                         ['padding-left']='10px'
                     })
                     }
                     :wikitext(m_name)
                     :wikitext(n)
             else
             else
                 row:tag('td')
                 r:tag('td')
                     :css({
                     :css{
                         ['font-weight'] = 'bold',
                         ['font-weight']='bold',
                         ['width'] = '55%',
                         width='55%',
                         ['border-top'] = '2px solid #000',
                         ['border-top']='2px solid #000',
                         ['padding-left'] = '10px'
                         ['padding-left']='10px'
                     })
                     }
                     :wikitext(m_name)
                     :wikitext(n)


                 local guestCell = row:tag('td')
                 r:tag('td')
                     :css({
                     :css{
                         ['text-align'] = 'center',
                         ['text-align']='center',
                         ['width'] = '25%',
                         width='25%',
                         ['border-top'] = '2px solid #000',
                         ['border-top']='2px solid #000',
                         ['border-right'] = '2px solid #000'
                         ['border-right']='2px solid #000'
                     })
                     }
                guestCell:tag('span'):css({ ['color'] = '#666', ['font-size'] = '0.9em' }):wikitext('with ')
                    :wikitext("<span style='color:#666;font-size:0.9em'>with </span>"..g)
                guestCell:wikitext(m_guest)
             end
             end


             local statRow = html:tag('tr')
             html:tag('tr'):tag('td')
            statRow:tag('td')
                 :attr('colspan','3')
                 :attr('colspan', '3')
                 :css{
                 :css({
                     ['background-color']='#f0f4f9',
                     ['background-color'] = '#f0f4f9',
                     ['border-left']='2px solid #000',
                     ['border-left'] = '2px solid #000',
                     ['border-right']='2px solid #000',
                     ['border-right'] = '2px solid #000',
                     padding='6px 12px',
                     ['padding'] = '6px 12px',
                     ['font-size']='0.9em'
                     ['font-size'] = '0.9em'
                 }
                 })
                 :wikitext("'''추가 스탯:''' "..(s~='' and s or '없음'))
                 :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')
             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')
                 :addClass('mw-collapsible mw-collapsed')
                :css({ ['width'] = '100%' })


             collapse:tag('div')
             c:tag('div')
                 :addClass('mw-collapsible-toggle')
                 :addClass('mw-collapsible-toggle')
                 :css({
                 :css{
                    ['float'] = 'none',
                     ['text-align']='center',
                     ['text-align'] = 'center',
                     background='#eee',
                     ['background'] = '#eee',
                     ['font-size']='0.85em',
                     ['font-size'] = '0.85em',
                     padding='4px',
                     ['padding'] = '4px',
                     ['border-top']='1px solid #ccc'
                     ['border-top'] = '1px solid #ccc',
                 }
                    ['cursor'] = 'pointer'
                 :wikitext('▼ 상세')
                 })
                 :wikitext("'''▼ 상세 내용 보기 / 닫기 ▼'''")


             collapse:tag('div')
             c:tag('div')
                 :addClass('mw-collapsible-content')
                 :addClass('mw-collapsible-content')
                 :css({
                 :css{padding='12px',background='#fff'}
                    ['padding'] = '12px',
                 :wikitext((d~='' and d~='-') and d or '상세 내용이 없습니다.')
                    ['background'] = '#fff'
                })
                 :wikitext((m_detail ~= '' and m_detail ~= '-') and m_detail or '상세 내용이 없습니다.')
         end
         end
        i=i+1
     end
     end


     if not hasAnyData then
     if not has then
         return '<div style="color:red; font-weight:bold;">데이터를 찾을 수 없습니다.</div>'
         return "<div style='color:red;font-weight:bold'>데이터를 찾을 수 없습니다.</div>"
     end
     end
     return tostring(html)
     return tostring(html)
end
end


return p
return p

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

교류 #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 i,has=1,false
    while args['타입'..i] or args['이름'..i] do
        local t=args['타입'..i] or ''
        local n=args['이름'..i] or ''
        local g=args['게스트'..i] or ''
        local s=args['스텟'..i] or ''
        local d=args['내용'..i] or ''

        if t~='' or n~='' then
            has=true
            local r=html:tag('tr')

            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)

            if g=='' then
                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)
            else
                r:tag('td')
                    :css{
                        ['font-weight']='bold',
                        width='55%',
                        ['border-top']='2px solid #000',
                        ['padding-left']='10px'
                    }
                    :wikitext(n)

                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

            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
        i=i+1
    end

    if not has then
        return "<div style='color:red;font-weight:bold'>데이터를 찾을 수 없습니다.</div>"
    end
    return tostring(html)
end

return p