• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

Module:虚拟UP主所属经历

萌娘百科,万物皆可萌的百科全书!转载请标注来源页面的网页链接,并声明引自萌娘百科。内容不可商用。
跳转到导航 跳转到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

本模块用于支持实现Template:虚拟UP主信息栏/所属经历的相关功能。

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 args = frame.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(
            "|-\n" ..
            "| style=\"text-align:left; width:150px;\" | %s\n" ..
            "| style=\"text-align:left; padding:0 5px\" | %s",
            time, content
        )
        
        table.insert(rows, row)
    end
    
    return '{| style="font-size:80%;max-width:280px;"\n' .. 
           table.concat(rows, '\n') .. 
           '\n|}'
end

return p