Bước tới nội dung

Mô đun:Clade/labels

Bách khoa toàn thư mở Wikipedia
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 argumentsendp.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 .. '<div style="position:absolute;white-space:nowrap;' 		                .. style .. color                                       -- CSS styling		                .. top .. left .. right .. bottom .. '">'               -- position of label		                .. label                                                -- content of label		                .. '</div>'		i=i+1	end	if output ~= "" then		local styleStr = ""		--widthStr = 'width:' .. (longestString*0.5)..'em;' -- can't take account of formatting or <br/>		if width then styleStr = 'style="width:' .. width .. '"' end 				output = '<div ' .. styleStr ..'>' .. output .. '</div>'	end	return outputendp.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 .. '<div style="position:absolute;white-space:nowrap;' 		                .. style .. color                                       -- CSS styling		                .. top .. left .. right .. bottom .. '">'               -- position of label		                .. label                                                -- content of label		                .. '</div>'	if output ~= "" then		local widthStr = ''		if width then widthStr = 'width:' .. width .. ';' end 				output = '<div style="position:relative;' .. widthStr .. '">' .. output .. '<br/></div>'	end            return output    endreturn p