Difference between revisions of "Module:Coxeter–Dynkin diagram"

From blackwiki
Jump to navigation Jump to search
blackwiki>Mr. Stradivarius
(use ipairs, as pairs traverses arguments in random order; also, split the program into two functions, one for #invoke and one for other Lua modules, so we don't have to have a frame object available all the time)
blackwiki>JohnBlackburne
(add check for null/empty parameters)
Line 14: Line 14:
 
local body ='<span style="display:inline-block;">'        -- create and start the output string
 
local body ='<span style="display:inline-block;">'        -- create and start the output string
 
for v, x in ipairs(args) do                                -- process params, ignoring any names
 
for v, x in ipairs(args) do                                -- process params, ignoring any names
body = body .. "[[File:CDel_" .. x .. ".png|link=]]"  -- write file for this parameter
+
if (x) then -- check for null/empty names
 +
        body = body .. "[[File:CDel_" .. x .. ".png|link=]]"  -- write file for this parameter
 +
end
 
end
 
end
 
body = body .. "</span>"                                  -- finish output string
 
body = body .. "</span>"                                  -- finish output string

Revision as of 21:00, 24 April 2014

This module implements Template:Coxeter–Dynkin diagram. It is invoked as

  • {{#invoke:Coxeter–Dynkin diagram|CDD}}

though the parameter is ignored; instead it uses the parameters passed to the template. See the template documentation for how that is used.

For using this from other Lua modules, first load the module.

local CDD = require('Module:Coxeter–Dynkin diagram')._CDD

You can then use it with the following syntax.

CDD{"node", "3", "node"}

See the template documentation for possible inputs.


-- module to turn a parameter list into a list of [[Coxeter–Dynkin diagram]] images.
-- See the template documentation or any example for how it is used and works.
local p = {}

function p.CDD(frame)
	-- For calling from #invoke.
	local pframe = frame:getParent()
	local args = pframe.args
	return p._CDD(args)
end
	
function p._CDD(args)
	-- For calling from other Lua modules.
	local body ='<span style="display:inline-block;">'         -- create and start the output string
	for v, x in ipairs(args) do                                -- process params, ignoring any names
		if (x) then					-- check for null/empty names
        		body = body .. "[[File:CDel_" .. x .. ".png|link=]]"   -- write file for this parameter
		end
	end
	body = body .. "</span>"                                   -- finish output string
	return body                                                -- return result
end

return p