Jump to content
Wikipedia The Free Encyclopedia

Module:Clade/labels

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
Warning This Lua module is used on approximately 260 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them.
The above documentation is transcluded from Module:Clade/labels/doc. (edit | history)
Editors can experiment in this module's sandbox (create | mirror) and testcases (create) pages.
Subpages of this module.

 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 .. '<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 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 "-1em" -- to compensate for CSS :before {content:"2060円";} on the sublabel
	 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 .. '</div>' -- <br/> removed now using CSS :before {content:"2060円";} for the sublabel
	end
 
 return output
 
 end


 return p

AltStyle によって変換されたページ (->オリジナル) /