Module:SkillList

local p = {}

-- Grabs args from the parent frame -- Trims and parses the args into a table, then returns the table function norm local origArgs = mw.getCurrentFrame:getParent.args local args = {} for k, v in pairs( origArgs ) do       v = mw.text.trim( tostring( v ) ) if v ~= '' then args[k] = v       end end return args end

-- Main entry point for the Module function p.main -- get args from the Template local args = norm if args.list == nil or args.list == '' then return '\'list\' must be specified.' end -- assign variables for list local list = args.list -- load lists local skillData = require( "Module:Skills" ) local skillList = ''

--Check Passes if list ~= 'profession' and list ~= 'specialty' and list ~= 'skill' then return skillList .. ' Incorrect use of pass. '   end local a = {} --Profession List if list == 'profession' then skillList = skillList .. '=== Profession List ===\n' for k,v in pairs(skillData.skills) do                   if skillData.skills[k].root == true then table.insert(a,k) end end table.sort(a) for i,n in ipairs(a) do           skillList = skillList .. '* ' .. n .. '\n' end end --Specialty List if list == 'specialty' then skillList = skillList .. '=== Specialty List ===\n' skillList = skillList .. '\n' for k,v in pairs(skillData.skills) do       			if skillData.skills[k].specialty == true and skillData.skills[k].root == false then table.insert(a,k) end end table.sort(a) for i,n in ipairs(a) do           skillList = skillList .. '* ' .. n .. '\n' end skillList = skillList .. ' '	end --Skill List (exclude Profession and Specialty) if list == 'skill' then skillList = skillList .. '=== Skill List ===\n' skillList = skillList .. '\n'

for k,v in pairs(skillData.skills) do       			if skillData.skills[k].specialty == false and skillData.skills[k].root == false then table.insert(a,k) end end table.sort(a) for i,n in ipairs(a) do           skillList = skillList .. '* ' .. n .. '\n' end skillList = skillList .. ' '	end

return skillList end

return p