Module:TagList

From Eco - English Wiki
Revision as of 13:00, 27 February 2021 by Avaren (talk | contribs) (Use mw.loadData to load static data once per page)

This module provides the back end functionality of the Template:TagsList.

If the template is passed, this module creates a list using details from the following Modules:

Credit

Original SkillList was created by Fyre (FishAus) then edited by Scotty (ZeelNightwolf) and used as a base for TagsList.


-- Credit: Original SkillList was created by Fyre (FishAus) then edited by Scotty (ZeelNightwolf) and used as a base for tagsList.

local p = {}

local Utils = require('Module:Utils')

-- Main entry point for the Module
function p.main(frame)
  -- get args from the Template
  local args = Utils.normaliseArgs(frame)
  
  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 itemData = mw.loadData("Module:ItemData")
  local tagsList = ''
  
  --Check Passes
  if list ~= 'tags' then
    return tagsList .. ' Incorrect use of pass. '
  end

  local a = {}
  --Tags List
  if list == 'tags' then
    tagsList = tagsList .. '=== Tags List ===\n'
    tagsList = tagsList .. '<div style=\"column-count:3;-moz-column-count:3;-webkit-column-count:3\">\n'
    
    for k, v in pairs(itemData.tags) do
      if itemData.tags[k] ~= nil then
        table.insert(a, k)
      end
    end
    table.sort(a)
    for i, n in ipairs(a) do
      tagsList = tagsList .. '* [[' .. n .. 'Tag|' .. n .. ']]\n'
    end
    tagsList = tagsList .. '|[[Category:Tags]]</div>'
  end

  return tagsList
end

return p