Documentation for this module may be created at Module:Achievements/doc
local p = {}
local d = require('Module:Data')
local dv = require('Module:Data/View')
local capiunto = require 'capiunto'
p.view = {}
p.view['Name'] = dv.title{'key', text='name'}
p.view['Description'] = dv.text{'description'}
p.view['Requirements (if different)'] = dv.text{'altDescription'}
p.view['Icon'] = dv.text{'icon'}
p.defaultColumns = {
'name', 'description', 'altDescription', 'icon'
}
p.positionalArgs = function(f)
local posArgs = {}
for i,posArg in ipairs(f.args) do
-- positional arguments don't get trimmed
table.insert(posArgs, mw.text.trim(posArg))
end
return posArgs
end
p.list = function(f)
local columns = p.positionalArgs (f)
if table.getn(columns) == 0 then
columns = p.defaultColumns
end
local data = mw.loadData('Module:Achievements/Data')
data = d.sort(data, {
d.on(d.path{'icon'}, d.asc),
d.on(d.path{'altDescription'}, d.asc),
d.on(d.path{'description'}, d.asc),
d.on(d.path{'name'}, d.asc)
})
return dv.displayTable(data, p.view, columns)
end
return p