From WikiChip
Difference between revisions of "Module:comp"

Line 22: Line 22:
 
 
 
   local list = split(frame.args.list, ',')
 
   local list = split(frame.args.list, ',')
   local s = ''
+
   local chips = { }
 
    
 
    
 
   for key, chip_name in pairs(list) do
 
   for key, chip_name in pairs(list) do
Line 29: Line 29:
 
     return '<strong>"' .. chip_name .. '"</strong> cannot be found.';
 
     return '<strong>"' .. chip_name .. '"</strong> cannot be found.';
 
end
 
end
 +
chips[#chips+1] = chip
 
   end
 
   end
 
    
 
    
   return s
+
   local table = mw.html.create('table')
 +
  :attr('style', 'border: 1px solid black; border-collapse: collapse;')
 +
local row = table:tag('tr')
 +
row:tag('td'):wikitext('&nbsp;')
 
    
 
    
 +
for key,val in pairs(chips) do
 +
row:tag('td'):wikitext(val.name())
 +
end
 +
 
 +
 
 +
  return table
 
end
 
end
  
 
return m
 
return m

Revision as of 23:43, 25 May 2017

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

function split(str, sep)
        if sep == nil then
                sep = "%s"
        end
        local t={} ; i=1
        for str in string.gmatch(str, "([^"..sep.."]+)") do
                t[i] = str:match "^%s*(.-)%s*$"
                i = i + 1
        end
        return t
end


local m = {}

function m.mpu_comp(frame)
  local wikichip = require("Module:wikichip")
	
  if not frame.args.list then
    return 'Error: Missing chip list to compare!'
  end
	
  local list = split(frame.args.list, ',')
  local chips = { }
  
  for key, chip_name in pairs(list) do
    local chip = wikichip:new(chip_name)
    if not chip.is_valid() then
    	return '<strong>"' .. chip_name .. '"</strong> cannot be found.';
	end
	chips[#chips+1] = chip
  end
  
  local table = mw.html.create('table')
  				:attr('style', 'border: 1px solid black; border-collapse: collapse;')
	local row = table:tag('tr')
	row:tag('td'):wikitext('&nbsp;')
  
	for key,val in pairs(chips) do
		row:tag('td'):wikitext(val.name())
	end
  
  
  return table
end

return m