Module:Clade/sequential: Difference between revisions
Appearance
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.inverseClade(frame,max,max) |
|||
else |
|||
⚫ | |||
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