Module:Flaglist: Difference between revisions

From Zoophilia Wiki
Jump to navigationJump to search
meta>SiBr4
(Moved from Module:Sandbox/SiBr4)
 
m (11 revisions imported)
 
(10 intermediate revisions by 5 users not shown)
Line 3: Line 3:


local p = {}
local p = {}
function p.width( frame )


local size
function p.luawidth(size)
local w
--For use within Lua
local h
local w
 
if string.find(size,"^%d+x%d+px$") then -- width and height (eg. 20x10px)
size = frame["args"][1]
-- 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


if string.match(size,"^%d+x%d+px$") ~= nil then -- width and height (eg. 20x10px)
function p.width(frame)
  -- use specified width
--For external use
  w = string.gsub(size,"(%d+)x%d+px","%1")
return p.luawidth(frame.args[1])
elseif string.match(size,"^%d+px$") ~= nil then -- width only (eg. 20px)
  -- use specified width
  w = string.gsub(size,"(%d+)px","%1")
elseif string.match(size,"^x%d+px$") ~= nil then -- height only (eg. x10px)
  -- assume a width based on the height
  h = string.gsub(size,"x(%d+)px","%1")
  w = h * 2.2
else -- empty or invalid input
  w = 23 -- default width for flagicons
end
end


w = w + 7 -- extra whitespace between icon and link
return w
end
return p
return p

Latest revision as of 02:35, 3 September 2020

Documentation for this module may be created at Module:Flaglist/doc

-- 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