Module:SMART attributes: Difference between revisions

From Computing Classics Wiki
Add uppercase check
Add test output
Line 9: Line 9:
table = table .. "!width=17%|'''ID'''"
table = table .. "!width=17%|'''ID'''"
table = table .. "!width=17%|'''Name'''"
table = table .. "!width=17%|'''Name'''"
-- Test value
table = table .. "|-"
    table = table .. "|" .. "Foobar"
    table = table .. "|" .. "Bar"
for i=1, 254, 1 do
for i=1, 254, 1 do
     argName = ""
     argName = ""
Line 23: Line 28:
     if (argName ~= "") then
     if (argName ~= "") then
     table = table .. "|-"
     table = table .. "|-"
     table = table .. "|" .. "0x" .. string.format("%x", i) .. tostring(i)
     table = table .. "|" .. "0x" .. string.format("%x", i) .. "/" .. tostring(i)
     table = table .. "|" .. frame.args(argName)
     table = table .. "|" .. frame.args(argName)
     end
     end

Revision as of 11:37, 3 March 2021

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

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

function p.makeSmartAttrTable()
	frame = mw.getCurrentFrame()
	-- 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: 90%;\" class=\"wikitable\""
	table = table .. "!width=17%|'''ID'''"
	table = table .. "!width=17%|'''Name'''"
	
	-- Test value
	table = table .. "|-"
    table = table .. "|" .. "Foobar"
    table = table .. "|" .. "Bar"
	for i=1, 254, 1 do
    	argName = ""
    	if (frame.args[string.format("%x", i)] ~= nil) then
    		argName = string.format("%x", i)
    	elseif (frame.args[i] ~= nil) then
			argName = i
    	elseif (frame.args["0x" .. string.format("%x", i)] ~= nil) then
    		argName = "0x" .. string.format("%x", i)
    	elseif (frame.args["0x" .. string.upper(string.format("%x", i))] ~= nil) then
    		argName = "0x" .. string.format("%x", i)
    	end
    	
    	if (argName ~= "") then
    		table = table .. "|-"
    		table = table .. "|" .. "0x" .. string.format("%x", i) .. "/" .. tostring(i)
    		table = table .. "|" .. frame.args(argName)
    	end
 	end

	table = table .. "|}"

	return table
end

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