本WIKI由逆熵战略研究所申请于2020年03月03日创建,编辑权限开放,如遇Chrome浏览器登陆后无法编辑点这里 BWIKI反馈留言板 BWIKI收藏到桌面的方法说明
我们的WIKI还有许多不足之处,欢迎大家积极补充
因系统升级,本站评论区暂时关闭
本站为非官方攻略站,若对官方有任何意见请到官方评论区留言,否则本攻略站有权按照《崩坏3WIKI社区规则》和《崩坏3WIKI免责声明》进行处理。

一路顺风,琪亚娜。我们会等你回家。

全站通知:

模块:Voice actor

来自崩坏3WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

此模块的文档可以在模块:Voice actor/doc创建

------
-- Module:Voice actor
------
local p = {}
local getArgs = require('Module:Arguments').getArgs

-- String.split(string, key)
function split(s, k)
  local rt = {}
  string.gsub(
    s,
    '[^' .. k .. ']+',
    function(w)
      table.insert(rt, w)
    end
  )
  return rt
end

-- String.trim(string)
function trim(s)
  return (s:gsub('^%s*(.-)%s*$', '%1'))
end

-- Make link for voice actor
function makeLink(actorName, displayName)
  local text = ''
  actorName = trim(actorName)
  displayName = trim(displayName) or actorName
  text = text .. '[[Category:配音演员:' .. actorName .. ']]'
  text = text .. '[[:Category:配音演员:' .. actorName .. '|' .. displayName .. ']]'
  return text
end

-- Main function
function p.main(frame)
  local args = getArgs(frame)

  -- Nil
  if args[1] == nil then
    return '[[:Category:配音演员|配音演员]]'
  end

  -- Create empty variable
  local text = {}

  -- Get all actors
  local allActors = split(args[1], ',')

  -- Loop
  for _, actor in pairs(allActors) do
    local parts = split(actor, '|')
    local actorName = parts[1]
    local displayName = parts[2] or actorName
    table.insert(text, makeLink(actorName, displayName))
  end

  -- Concat the table
  text = table.concat(text, '<br>')

  return text
end

-- end
return p