Module:Flaglist: Difference between revisions

From Zoophilia Wiki
Jump to navigationJump to search
meta>Maiō T.
(reducing of whitespace by one pixel; see Template talk:Flaglist)
meta>Maiō T.
(space instead of 4 pixels, see talk)
Line 11: Line 11:
if string.find(size,"^%d+x%d+px$") then -- width and height (eg. 20x10px)
if string.find(size,"^%d+x%d+px$") then -- width and height (eg. 20x10px)
   -- use specified width
   -- use specified width
   w = tonumber(string.match(size,"(%d+)x%d+px"))
   w = tonumber(string.match(size,"(%d+)x%d+px")) + 2 -- (2px for borders)
elseif string.find(size,"^%d+px$") then -- width only (eg. 20px)
elseif string.find(size,"^%d+px$") then -- width only (eg. 20px)
   -- use specified width
   -- use specified width
   w = tonumber(string.match(size,"(%d+)px"))
   w = tonumber(string.match(size,"(%d+)px")) + 2
elseif string.find(size,"^x%d+px$") then -- height only (eg. x10px)
elseif string.find(size,"^x%d+px$") then -- height only (eg. x10px)
   -- assume a width based on the height
   -- assume a width based on the height
Line 21: Line 21:
   w = math.floor(w+0.5) -- round to integer
   w = math.floor(w+0.5) -- round to integer
else -- empty or invalid input
else -- empty or invalid input
   w = 23 -- default width for flagicons
   w = 25 -- default width for flagicons including borders
end
end


w = w + 6 -- minimum whitespace between icon and link
return tostring(w)
return tostring(w)



Revision as of 13:07, 17 June 2017

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