2023年政策修订增补工作正在进行中,欢迎参与!
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