Module:AffectAnxietyNavbox

From No Subject
Jump to navigation Jump to search

Documentation for this module may be created at Module:AffectAnxietyNavbox/doc

-- Module:AffectAnxietyNavbox
local p = {}

local function getArg(args, key)
  local v = args and args[key] or nil
  if v == nil then return nil end
  v = mw.text.trim(tostring(v))
  if v == "" then return nil end
  return v
end

function p.main(frame)
  local parent = frame:getParent()
  local args = parent and parent.args or frame.args

  local state = getArg(args, "state") or "collapsed"
  local title = getArg(args, "title") or "Affect and anxiety"
  local navbar = getArg(args, "navbar") -- optional (omit if not provided)

  local data = mw.loadData("Module:AffectAnxietyNavbox/data")

  local nav = {
    name = "AffectAnxietyNavbox",
    title = title,
    state = state,
    listclass = "hlist",
  }
  if navbar then nav.navbar = navbar end

  for i, row in ipairs(data.rows) do
    nav["group" .. i] = row.group
    nav["list" .. i]  = row.list
  end

  return frame:expandTemplate{ title = "Navbox", args = nav }
end

return p