We are actively looking for staff to help us build the wiki. If you are interested please join our Discord server and apply.

Module:Items: Difference between revisions

From Moonbounce Wiki
Jump to navigation Jump to search
(Forgot to properly define some stuff)
(Remove the width style from the output table)
 
(One intermediate revision by the same user not shown)
Line 20: Line 20:


   -- open a table to contain the items, spannin the header by the number of items
   -- open a table to contain the items, spannin the header by the number of items
   result = result .. "{| class=\"wikitable\" style=\"width: 100%; text-align: center;\"\n"
   result = result .. "{| class=\"wikitable\"\n"
   result = result .. "! colspan=\"" .. numItems .. "\" | " .. header .. "\n"
   result = result .. "! colspan=\"" .. numItems .. "\" | " .. header .. "\n"
   result = result .. "|-\n"
   result = result .. "|-\n"
Line 30: Line 30:
     -- Replace the NAME placeholder with the item name
     -- Replace the NAME placeholder with the item name
     local item_template = "{{Item | name = " .. item .. " }}"
     local item_template = "{{Item | name = " .. item .. " }}"
    -- Use frame:preprocess to ensure the template call is correctly parsed
    item_template = mw.text.trim(frame:preprocess(item_template))


     -- Append the item template to the result string
     -- Append the item template to the result string

Latest revision as of 03:04, 14 July 2024

Documentation for this module may be created at Module:Items/doc

-- Module:Items
local p = {}

function p.createItemTableRow(frame)
  
  -- Get the items and header passed to the module by their names, defaulting items to an empty string and header to "Items"
  local items = mw.text.split(frame.args.items or "", ",")
  local header = frame.args.header or "Items"

  -- Store the number of items
  local numItems = #items

  -- Initialize the result string
  local result = ""

  -- if the item is wrapped in brackets, remove them
  for i, item in ipairs(items) do
    items[i] = item:gsub("%[", ""):gsub("%]", "")
  end

  -- open a table to contain the items, spannin the header by the number of items
  result = result .. "{| class=\"wikitable\"\n"
  result = result .. "! colspan=\"" .. numItems .. "\" | " .. header .. "\n"
  result = result .. "|-\n"
  
  -- Iterate over the items and create an item template for each
  for i, item in ipairs(items) do
    item = mw.text.trim(item)
    
    -- Replace the NAME placeholder with the item name
    local item_template = "{{Item | name = " .. item .. " }}"

    -- Use frame:preprocess to ensure the template call is correctly parsed
    item_template = mw.text.trim(frame:preprocess(item_template))

    -- Append the item template to the result string
    result = result .. "| " .. item_template .. "\n"
  end

  -- close the table
  result = result .. "|}\n"

  return result
end

return p