Module:AeroWikiListTools
From Aeronautica Official Wiki
More actions
(Redirected from Module:Aero wiki list tools)
Documentation for this module may be created at Module:AeroWikiListTools/doc
-- Created by @Sqwishyish on discord
-- Contact me for any issues
local getArgs = require('Module:Arguments').getArgs
local p = {}
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame)
return p[funcName](args)
end
end
p.split_list = makeInvokeFunc('_split_list')
p._split_list = function (args)
-- Get arguments passed from function call
local input_string = args[1] -- List string to modify
local template = args[2] -- String to put at each {split}
local missing_string = args[3] -- String to return when either the template or the input is nil
local new_string = ''
-- Check if input string exists
if input_string == nil or template == nil then
return missing_string
end
-- Check if input string is not 'None'
if input_string == 'None' then
return 'None'
end
-- Split string by commas and append the template at each {split} point
for split in string.gmatch(input_string , '([^,]+)') do
new_string = new_string .. template:gsub('{split}', split:match('^%s*(.-)%s*$')) .. ' '
end
-- Remove comma on end of list
if template:sub(-1) == ',' then
new_string = new_string:sub(1, -3)
elseif template:sub(-2) == ', ' then
new_string = new_string:sub(1, -4)
end
-- Return the new string to the list
return new_string
end
return p