Module:Sandbox/BearBin/GalgameStaffList
< Module:Sandbox | BearBin
跳到导航
跳到搜索
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