置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:Sandbox/BearBin/GalgameStaffList

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

-- 将文本解析为链接列表
-- @param text 使用“ , ”划分的文本
function StaffLinks(text)
    local splitedTable = mw.text.split(text, " , ")
    return '<span lang="ja">-{[[' .. table.concat(splitedTable, "]]、[[") .. "]]}-</span>"
end

-- 将声优文本解析为链接列表
-- @param text 使用“-”划分的多对“角色-声优”
function CVLinks(text)
    local wikitext = {}
    local pos = 0
    for st, sp in function()
        return string.find(text, " , ", pos, true)
    end do
        local subText = mw.text.split(string.sub(text, pos, st - 1), "-")
        table.insert(wikitext, table.concat(subText, "]]:[["))
        pos = sp + 1
    end
    table.insert(wikitext, table.concat(mw.text.split(string.sub(text, pos), "-"), "]]:[["))
    return "**<span lang=\"ja\">-{[[" .. table.concat(wikitext, "]]}-</span>\n**<span lang=\"ja\">-{[[") .. "]]}-</span>"
end

function p.main(frame)
    local args = getArgs(frame)
    local wikitext = {}
    local i = 1
    while args["作品" .. i] do
        table.insert(wikitext, '====<span lang="ja">-{' .. args["作品" .. i] .. "}-</span>====")
        table.insert(wikitext, '*\'\'\'开发\'\'\':<span lang="ja">-{[[' .. args["开发" .. i] .. "]]}-</span>")
        if args["声优" .. i] then
            table.insert(wikitext, "*'''出演声优'''")
            table.insert(wikitext, CVLinks(args["声优" .. i]))
        end
        if args["原画" .. i] or args["编剧" .. i] then
            table.insert(wikitext, "*'''制作人员'''")
            if (args["原画" .. i]) then
                table.insert(wikitext, "**原画:" .. StaffLinks(args["原画" .. i]))
            end
            if (args["SD原画" .. i]) then
                table.insert(wikitext, "**SD原画:" .. StaffLinks(args["SD原画" .. i]))
            end
            if (args["编剧" .. i]) then
                table.insert(wikitext, "**编剧:" .. StaffLinks(args["编剧" .. i]))
            end
            if (args["音乐" .. i]) then
                table.insert(wikitext, "**音乐:" .. StaffLinks(args["音乐" .. i]))
            end
        end
        i = i + 1
    end
    return table.concat(wikitext, "\n")
end

return p