Jump to content

Module:Clade/sequential: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
create
 
add inverse
Line 9: Line 9:
local contentString = ""
local contentString = ""
local max = getMax()
local max = getMax()
if pargs['inverse'] then
contentString = p.clade(frame,1,max)
contentString = p.inverseClade(frame,max,max)
else
contentString = p.clade(frame,1,max)
end
return contentString
return contentString
Line 32: Line 36:
return frame:expandTemplate{ title = "Clade", args = args }
return frame:expandTemplate{ title = "Clade", args = args }
end
end
function p.inverseClade(frame,i,max)

local args = {}
args[1] = pargs [i]
args['label1'] = pargs ['label'..tostring(i)]
if i-1 == 1 then
args[2] = pargs [i-1]
args['label2'] = pargs ['label'..tostring(i-1)]
else
args[2] = p.inverseClade(frame,i-1,max) -- or the result of the next pair
end
return frame:expandTemplate{ title = "Clade", args = args }
end
function getMax()
function getMax()
local i=1
local i=1

Revision as of 09:14, 31 October 2019

local p = {}
local pargs 
function p.main(frame)

    pargs = frame:getParent().args
	
	local args = {}
	local i=1
	local contentString = ""
    local max = getMax()
    
    if pargs['inverse'] then
        contentString  = p.inverseClade(frame,max,max)
    else
    	contentString  = p.clade(frame,1,max)
    end
    
	return contentString 

end

function p.clade(frame,i,max)
	local args = {}
	
	args[1] = pargs [i]
	args['label1'] = pargs ['label'..tostring(i)] 
	if i+1 == max then 
		args[2] = pargs [i+1]
		args['label2'] = pargs ['label'..tostring(i+1)]	
	else
		args[2] = p.clade(frame,i+1,max)       -- or the result of the next pair
	end
	
	
	
	return frame:expandTemplate{ title = "Clade", args = args }
end
function p.inverseClade(frame,i,max)
	local args = {}
	
	args[1] = pargs [i]
	args['label1'] = pargs ['label'..tostring(i)] 
	if i-1 == 1 then 
		args[2] = pargs [i-1]
		args['label2'] = pargs ['label'..tostring(i-1)]	
	else
		args[2] = p.inverseClade(frame,i-1,max)       -- or the result of the next pair
	end
	
	
	
	return frame:expandTemplate{ title = "Clade", args = args }
end
function getMax()
	local i=1
	local max
    while i<50 do
       	if  pargs [i] then 
       		max = i 
       		i=i+1
		else
       	    break
    	end
    end
    return max
end

return p