Documentation for this module may be created at Module:Utils/doc
-- <nowiki>
local p = {}
-- http://lua-users.org/wiki/StringTrim
function trim(s)
return (s:gsub("^%s*(.-)%s*$", "%1"))
end
-- http://stackoverflow.com/questions/1426954/split-string-in-lua
function split(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={} ; i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str
i = i + 1
end
return t
end
-- http://stackoverflow.com/questions/2705793/how-to-get-number-of-entries-in-a-lua-table
function tablelength(table)
local count = 0
for _ in pairs(table) do
count = count + 1
end
return count
end
function p.filetype(frame)
local str = frame.args[1]
local spl = split(str, ',')
local res = ''
for key, value in pairs(spl) do
res = res .. '{{Fileinfo/type|' .. trim(value) .. '}}<br />'
end
return frame:preprocess(res:sub(0, -7))
end
function p.items(frame)
local str = frame.args[1]
if str == '-' then
return 'N/A'
end
local spl = split(str, ',')
local res = ''
for key, value in pairs(spl) do
res = res .. '[[File:' .. trim(value) .. '.png]]'
end
return frame:preprocess(res)
end
function p.item_name(frame)
local str = trim(frame.args[1])
if str:sub(0, 1) == '+' then
return frame:preprocess('<span style="color: #80FF80">' .. str:sub(2) .. '</span>')
end
return str
end
function p.item_id(frame)
local subd, _ = frame.args[1]:gsub('[\'\(\)\?"]', '')
subd, _ = trim(subd):gsub(' ', ' ')
subd, _ = trim(subd):gsub(' ', '_')
return subd
end
return p