Jump to content

Module:Hodge diamond

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Frietjes (talk | contribs) at 22:23, 5 February 2014 (Created page with 'local p = {} function p.diagram(frame) local args = (frame.args[3] ~= nil) and frame.args or frame:getParent().args local entries = {} local argcount = 0...'). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

local p = {}

function p.diagram(frame)
	local args = (frame.args[3] ~= nil) and frame.args or frame:getParent().args
	local entries = {}
	
	local argcount = 0
	for k, v in pairs( args ) do
        if type( k ) == 'number' then
           entries[ k ] = v
           argcount = argcount + 1
        end
    end
    local side = math.floor(math.sqrt(argcount))
    local rows = 2*side - 1
    
    local res = ''

    local c = 1    
    for i = 1,side do
    	res = res .. '<tr>'
    	for j = 1,(side-i) do
    		res = res .. '<td></td>'
		end
		for k = 1,i do
			res = res .. '<td>' .. entries[k] .. '</td>'
			k = k + 1
		end
		   	for j = 1,(side-i) do
    		res = res .. '<td></td>'
		end
		res = res .. '</tr>\n'
	end
	for i = 1,(side-1) do
		res = res .. '<tr>'
    	for j = 1,i do
    		res = res .. '<td></td>'
		end
		for k = 1,(side-i) do
			res = res .. '<td>' .. entries[k] .. '</td>'
			k = k + 1
		end
		   	for j = 1,i do
    		res = res .. '<td></td>'
		end
		res = res .. '</tr>\n'
	end
	return '<table>\n' .. res .. '</table>'
end
 
return p