Module:SMART attributes: Difference between revisions

From Australian Enthusiasts Wiki
Use frame:getParent()
No reason to be small
 
(11 intermediate revisions by the same user not shown)
Line 3: Line 3:


function p.makeSmartAttrTable()
function p.makeSmartAttrTable()
-- Expensive function; incremenet the expensive count.
mw.incrementExpensiveFunctionCount()
frame = mw.getCurrentFrame():getParent()
-- Start table
-- Start table
table = ""
table = ""
table = table .. "{|cellspacing=\"0\" cellpadding=\"4\" border=\"1\" style=\"margin: 0 0 1em 1em; border: 1px #171717 solid; border-collapse: collapse; font-size: 90%;\" class=\"wikitable\"" .. "\n"
table = table .. "{|cellspacing=\"0\" cellpadding=\"4\" border=\"1\" style=\"margin: 0 0 1em 1em; border: 1px #171717 solid; border-collapse: collapse; font-size: 100%;\" class=\"wikitable\"" .. "\n"
table = table .. "!width=17%|'''ID'''" .. "\n"
table = table .. "!width=1%|'''ID'''" .. "\n"
table = table .. "!width=17%|'''Name'''" .. "\n"
table = table .. "!width=17%|'''Name'''" .. "\n"
-- Test value
local hexConverter = require("Module:DecToHex")
table = table .. "|-" .. "\n"
    table = table .. "|" .. "Foobar" .. "\n"
-- Check numbers from 1 to 254, along with hex equivalent.
    table = table .. "|" .. "Bar" .. "\n"
for i=1, 254, 1 do
for i=1, 254, 1 do
     argName = ""
     argName = ""
     if (frame:getParent().args[string.format("%x", i)] ~= nil) then
     if (frame.args[hexConverter.decToHex(i)] ~= nil and frame.args[hexConverter.decToHex(i)] ~= "") then
     argName = string.format("%x", i)
     argName = hexConverter.decToHex(i)
     elseif (frame:getParent().args[i] ~= nil) then
     elseif (frame.args[i] ~= nil and frame.args[i] ~= "") then
argName = i
argName = i
     elseif (frame:getParent().args["0x" .. string.format("%x", i)] ~= nil) then
     elseif (frame.args["0x" .. hexConverter.decToHex(i)] ~= nil and frame.args["0x" .. hexConverter.decToHex(i)] ~= "") then
     argName = "0x" .. string.format("%x", i)
     argName = "0x" .. hexConverter.decToHex(i)
     elseif (frame:getParent().args["0x" .. string.upper(string.format("%x", i))] ~= nil) then
     elseif (frame.args["0x" .. string.upper(hexConverter.decToHex(i))] ~= nil and frame.args["0x" .. string.upper(hexConverter.decToHex(i))] ~= "") then
     argName = "0x" .. string.format("%x", i)
     argName = "0x" .. string.upper(hexConverter.decToHex(i))
     end
     end
    
    
     mw.log("ITNO " .. tostring(i) .. ", argName = " .. argName)
     -- Draw table row if either the decimal or hexadecimal arg is populated.
   
     if (argName ~= "") then
     if (argName ~= "") then
     table = table .. "|-" .. "\n"
     table = table .. "|-" .. "\n"
     table = table .. "|" .. "0x" .. string.format("%x", i) .. "/" .. tostring(i) .. "\n"
     table = table .. "|" .. "0x" .. string.upper(hexConverter.decToHex(i)) .. "/" .. tostring(i) .. "\n"
     table = table .. "|" .. frame.args(argName) .. "\n"
     table = table .. "|" .. frame.args[argName] .. "\n"
     end
     end
  end
  end


-- Table closed
table = table .. "|}"
table = table .. "|}"

Latest revision as of 08:27, 3 September 2022

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

-- Implements Template:SMART attributes.
local p = {}

function p.makeSmartAttrTable()
	-- Expensive function; incremenet the expensive count.
	mw.incrementExpensiveFunctionCount()
	
	frame = mw.getCurrentFrame():getParent()
	-- Start table
	table = ""
	table = table .. "{|cellspacing=\"0\" cellpadding=\"4\" border=\"1\" style=\"margin: 0 0 1em 1em; border: 1px #171717 solid; border-collapse: collapse; font-size: 100%;\" class=\"wikitable\"" .. "\n"
	table = table .. "!width=1%|'''ID'''" .. "\n"
	table = table .. "!width=17%|'''Name'''" .. "\n"
	
	local hexConverter = require("Module:DecToHex")
	
	-- Check numbers from 1 to 254, along with hex equivalent.
	for i=1, 254, 1 do
    	argName = ""
    	if (frame.args[hexConverter.decToHex(i)] ~= nil and frame.args[hexConverter.decToHex(i)] ~= "") then
    		argName = hexConverter.decToHex(i)
    	elseif (frame.args[i] ~= nil and frame.args[i] ~= "") then
			argName = i
    	elseif (frame.args["0x" .. hexConverter.decToHex(i)] ~= nil and frame.args["0x" .. hexConverter.decToHex(i)] ~= "") then
    		argName = "0x" .. hexConverter.decToHex(i)
    	elseif (frame.args["0x" .. string.upper(hexConverter.decToHex(i))] ~= nil and frame.args["0x" .. string.upper(hexConverter.decToHex(i))] ~= "") then
    		argName = "0x" .. string.upper(hexConverter.decToHex(i))
    	end
    	
    	-- Draw table row if either the decimal or hexadecimal arg is populated.
    	if (argName ~= "") then
    		table = table .. "|-" .. "\n"
    		table = table .. "|" .. "0x" .. string.upper(hexConverter.decToHex(i)) .. "/" .. tostring(i) .. "\n"
    		table = table .. "|" .. frame.args[argName] .. "\n"
    	end
 	end

	-- Table closed
	table = table .. "|}"
	
	return table
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.