模块:Mc-dropdown

来自Mooncell - 玩家共同构筑的FGO中文Wiki
跳到导航 跳到搜索

demo

{{#Widget:Mc-dropdown}}{{#invoke:Mc-dropdown|menu|1|panelid|title1|1|title2|2}}{{#invoke:Mc-dropdown|panel|panelid|<big>content1</big>|1|{{#ask:[[分类:从者]]}}|2}} <br/> ---- <br/> {{#invoke:Mc-dropdown|menu|1|panelid2|title1|1|title2|2}}{{#invoke:Mc-dropdown|panel|panelid2|{{#ask:[[分类:概念礼装]]}}|1|content2|2}}


title1
title2




title1
title2

local getArgs = require('Module:Arguments').getArgs
local p = {}
function p.menu(frame)
	args=getArgs(frame)
	local dropdown = mw.html.create('div')
    dropdown:addClass('mc-dropdown')
	local toggle = mw.html.create('div')
	toggle:attr(
        {
            ['data-default']=args[1],
            ['data-panel']=args[2]
        }
    )
    :addClass('mc-dropdown-toggle')
    local menu = mw.html.create( 'div')
    menu:addClass('mc-dropdown-menu')
    dropdown:node(toggle):node(menu)
    for k,v in ipairs(args)
    do
        if (k>=2 and k%2==1)
        then
            local item = mw.html.create('div')
            item:addClass('mc-dropdown-item'):attr('data-for',args[k+1]):wikitext(v)
            menu:node(item)
        end
    end
    return tostring(dropdown)
end

function p.panel(frame)
	args=getArgs(frame)
    local panel = mw.html.create('div')
    panel:attr('data-panel',args[1]):addClass('mc-dropdown-panel')
    for k,v in ipairs(args)
    do
        if (k>1 and k%2==0)
        then
            local item = mw.html.create('div')
            item:attr( 'data-id', args[k+1] ):wikitext(v)
            panel:node(item)
        end
    end
    return tostring(panel)
end
return p