Module:Clade/labels

local p = {}

--local args =frame:getParent.args -- get parent arguments --local args = {}

p.getArgs = function(frame) --return frame.args             -- use frame arguments return frame:getParent.args -- use parent arguments end p.main = function(frame) args = p.getArgs(frame) local i = 1                    -- index for labels local output = "" --local groupStyle = args['style']   local topStyle = args['top']    local leftStyle = args['left']    local rightStyle = args['right']    local bottomStyle = args['bottom'] -- parameters for all labels local width = args['width'] -- or "5em;" --local style = args['style'] or "" --local color = args['width'] or "" local longestString = 0 while args['label'..i] do	    local label = args['label'..i]     or "" if #label > longestString then longestString = #label end local style = args['style'..i]  or args['style']  or "" local color = args['color'..i]  or args['color']  or "" local top   = args['top'..i]    or args['top']    or "" local left  = args['left'..i]   or args['left']   or "" local right = args['right'..i]  or args['right']  or "" local bottom = args['bottom'..i] or args['bottom'] or "" if top ~= ""   then top    = 'top:'     .. top   .. ';' end if left ~= ""  then left   = 'left:'    .. left  .. ';' end if right ~= "" then right  = 'right:'   .. right .. ';' end if bottom ~= "" then bottom = 'bottom:' .. bottom .. ';' end if color ~= "" then color  = 'color:'   .. color .. ';' end --if no color:find(";", -1, true) then color = color .. ';' end --local position = top .. left .. right .. bottom output = output .. ''               -- position of label .. label                                               -- content of label .. ' '		i=i+1 end if output ~= "" then local styleStr = "" --widthStr = 'width:' .. (longestString*0.5)..'em;' -- can't take account of formatting or if width then styleStr = 'style="width:' .. width .. '"' end output = ' ' .. output .. ' '	end return output end

p.label = function(frame) args = p.getArgs(frame) local i = 1                    -- index for labels local output = "" local label = args['label'..i] or args['label'] or args[1]   or "" local width = args['width'] local style = args['style'..i]  or args['style']  or "" local color = args['color'..i]  or args['color']  or "" local top   = args['top'..i]    or args['top']    or "" local left  = args['left'..i]   or args['left']   or "" local right = args['right'..i]  or args['right']  or "0px" local bottom = args['bottom'..i] or args['bottom'] or "" if top ~= ""   then top    = 'top:'     .. top   .. ';' end if left ~= ""  then left   = 'left:'    .. left  .. ';' end if right ~= "" then right  = 'right:'   .. right .. ';' end if bottom ~= "" then bottom = 'bottom:' .. bottom .. ';' end if color ~= "" then color  = 'color:'   .. color .. ';' end output = output .. ''               -- position of label .. label                                               -- content of label .. ' '

if output ~= "" then local widthStr = '' if width then widthStr = 'width:' .. width .. ';' end output = ' ' .. output .. ' '	end return output end

return p