Difference between revisions of "Module:Flaglist"

From blackwiki
Jump to navigation Jump to search
blackwiki>Pppery
m (Pppery moved page Module:Flaglist/size to Module:Flaglist without leaving a redirect: It would have been simpler to fix the one usecase I missed rather than reverting me. "Module:Flaglist/size" meets G8 and thus is not a valid module title)
blackwiki>Pppery
(Fix code indentation)
Line 5: Line 5:
  
 
function p.luawidth(size)
 
function p.luawidth(size)
--For use within Lua
+
--For use within Lua
 
+
local w
local w
+
if string.find(size,"^%d+x%d+px$") then -- width and height (eg. 20x10px)
 
+
-- use specified width
if string.find(size,"^%d+x%d+px$") then -- width and height (eg. 20x10px)
+
w = tonumber(string.match(size,"(%d+)x%d+px")) + 2 -- (2px for borders)
  -- use specified width
+
elseif string.find(size,"^%d+px$") then -- width only (eg. 20px)
  w = tonumber(string.match(size,"(%d+)x%d+px")) + 2 -- (2px for borders)
+
-- use specified width
elseif string.find(size,"^%d+px$") then -- width only (eg. 20px)
+
w = tonumber(string.match(size,"(%d+)px")) + 2
  -- use specified width
+
elseif string.find(size,"^x%d+px$") then -- height only (eg. x10px)
  w = tonumber(string.match(size,"(%d+)px")) + 2
+
-- assume a width based on the height
elseif string.find(size,"^x%d+px$") then -- height only (eg. x10px)
+
local h = tonumber(string.match(size,"x(%d+)px"))
  -- assume a width based on the height
+
w = h * 2.2
  local h = tonumber(string.match(size,"x(%d+)px"))
+
w = math.floor(w+0.5) -- round to integer
  w = h * 2.2
+
else -- empty or invalid input
  w = math.floor(w+0.5) -- round to integer
+
w = 25 -- default width for flagicons including borders
else -- empty or invalid input
+
end
  w = 25 -- default width for flagicons including borders
+
return tostring(w)
end
 
 
 
return tostring(w)
 
 
 
 
end
 
end
  
 
function p.width(frame)
 
function p.width(frame)
--For external use
+
--For external use
 
+
return p.luawidth(frame.args[1])
return p.luawidth(frame["args"][1])
 
 
 
 
end
 
end
  
 
return p
 
return p

Revision as of 17:25, 27 April 2019

This template is used internally by Template:Flaglist and should not be used directly.


-- Calculates the width of the span box for [[Template:Flaglist]]
-- based on the specified image size

local p = {}

function p.luawidth(size)
	--For use within Lua
	local w
	if string.find(size,"^%d+x%d+px$") then -- width and height (eg. 20x10px)
		-- use specified width
		w = tonumber(string.match(size,"(%d+)x%d+px")) + 2 -- (2px for borders)
	elseif string.find(size,"^%d+px$") then -- width only (eg. 20px)
		-- use specified width
		w = tonumber(string.match(size,"(%d+)px")) + 2
	elseif string.find(size,"^x%d+px$") then -- height only (eg. x10px)
		-- assume a width based on the height
		local h = tonumber(string.match(size,"x(%d+)px"))
		w = h * 2.2
		w = math.floor(w+0.5) -- round to integer
	else -- empty or invalid input
		w = 25 -- default width for flagicons including borders
	end
	return tostring(w)
end

function p.width(frame)
	--For external use
	return p.luawidth(frame.args[1])
end

return p