七日内新公告:全站维护公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:虚拟UP主所属经历

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [创建] [刷新]
local p = {}
local getArgs = require('Module:Arguments').getArgs  

function p.main(frame)
    local args = getArgs(frame, {
        parentFirst = true,
    })
    return p._main(args) 
end

function p._main(args)
    local rows = {}
    local keys = {}
    
    for key, _ in pairs(args) do
        if key:match('^时间%d+$') then
            local num = key:match('%d+$')
            table.insert(keys, tonumber(num))
        end
    end
    
    table.sort(keys)
    
    for _, num in ipairs(keys) do
        local time = args['时间' .. num] or ''
        local experience = args['经历' .. num] or ''
        local icon = args['图标' .. num] or ''
        local name = args['名称' .. num] or ''
        local note = args['备注' .. num] or ''
        
        local content
        if icon ~= '' then
            content = icon
        else
            if experience == '个人势' or experience == '毕业' or experience == '引退' then
                content = experience
            else
                if name ~= '' then
                    content = '[[' .. experience .. '|' .. name .. ']]'
                else
                    content = '[[' .. experience .. ']]'
                end
            end
        end
        
        if note ~= '' then
            content = content .. ' (' .. note .. ')'
        end
        
        local row = string.format(
            '<div style="display: flex; margin-bottom: 5px;">' ..
            '<div style="flex: 0 0 150px; text-align: left;">%s</div>' ..
            '<div style="flex: 1; text-align: left; padding: 0 5px;">%s</div>' ..
            '</div>',
            time, content
        )
        
        table.insert(rows, row)
    end
    
    return '<div style="font-size: 80%%; max-width: 280px;">' .. 
           table.concat(rows, '') .. 
           '</div>'
end

return p