Edge Rewrite
// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a223a990fa7c689d

Jump to content

Module:Clade/sequential

From Wikipedia, the free encyclopedia

local p = {}
local pargs 
local clade = require("Module:Clade").main

local 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

function p.clade(frame,i,max)  -- |1= is basal at top
	local args = {}
	
	args[1] = pargs [i]
	args['label1'] = pargs ['label'..tostring(i)] 
	args['sublabel1'] = pargs ['sublabel'..tostring(i)] 

	if i+1 == max then 
		args[2] = pargs [i+1]
		args['label2'] = pargs ['label'..tostring(i+1)]	
		args['sublabel2'] = pargs ['sublabel'..tostring(i+1)]	
	else
		args[2] = p.clade(frame,i+1,max)       -- or the result of the next pair
	end
	
    if i == 1 then args.style = frame.args.style or pargs.style or "" end
    if pargs ['reverse'] then args.reverse = 'true' end

	return clade(frame:newChild{title="Module:Clade/sequential", args = args})
end

function p.inverseClade(frame,i,max) -- |1= innermost at bottom
	local args = {}
	
	args[2] = pargs [i]
	args['label2'] = pargs ['label'..tostring(i)] 
	args['sublabel2'] = pargs ['sublabel'..tostring(i)] 
	if i-1 == 1 then 
		args[1] = pargs [i-1]
		args['label1'] = pargs ['label'..tostring(i-1)]	
		args['sublabel1'] = pargs ['sublabel'..tostring(i-1)]	
	else
		args[1] = p.inverseClade(frame,i-1,max)       -- or the result of the next pair
	end

	if i == max then args.style = frame.args.style or pargs.style or "" end
    if pargs ['reverse'] then args.reverse = 'true' end

	return clade(frame:newChild{title="Module:Clade/sequential", args = args})
end

function p.inverseClade2(frame,i,max)  -- |1= is innermost at bottom
	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

	if i == max then args.style = frame.args.style or pargs.style or "" end

	return clade(frame:newChild{title="Module:Clade/sequential", args = args})
end

function p._main(frame)
	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.main(frame)

    pargs = frame:getParent().args
	
	return p._main(frame)
end

p[""] = function (frame)

    pargs = frame.args
	
	return p._main(frame:newChild{title="Template:Clade sequential", args={}})
end

return p