Module:Dsize



From Wikimedia Commons, the free media repository



Jump to navigation  Jump to search  

Lua

CodeDiscussionEditHistoryLinksLink count Subpages:DocumentationTestsResultsSandboxLive code All modules

This module contains very few code - but it is heavily used.
It is needed to verify that a given display size is trailed by "px".
It can be expanded to check for other dimensions, as e.g. "em".

it will be used by Template:F, Created with/layout, ...

Use it with e.g. {{#invoke:Dsize|main|{{{sizepar}}} }}

Examples:
{{#invoke:Dsize|main|72px}} 72px width
{{#invoke:Dsize|main|72}} 72px width
{{#invoke:Dsize|main|72x}} 72xpx width
{{#invoke:Dsize|main|x64px}} x64px height
{{#invoke:Dsize|main|72x64}} 0 72x64px 0 w × h

Module:Galeria has a similar but more powerful and complex function.

Code

local p = {}
function p.main ( frame )
 local gpar = frame.args
 if  mw.ustring.sub(gpar[1], -2) == 'px' then
  return gpar[1];
 else
  return gpar[1] .. 'px';
 end
end

-- function: filename 
function p.f_name ( frame )
 local gpar = frame.args  -- globals
 gpar[1] = gpar[1] or mw.title.getCurrentTitle().text;
 gpar[2] = gpar[2] or ''; -- "+" value 
 gpar[3] = gpar[3] or ''; -- "-" value  
 local hdr  = gpar.h or '';
 local trl  = gpar.t or '';
 local l_strip = 0;
 local r_strip = 0;
 if mw.ustring.lower(mw.ustring.sub (gpar[1],-4,-4)) == '.' then
   r_strip = 4;   -- .jpg, .png, .svg
 end

 if mw.ustring.sub (gpar[2],1,1) == "+" then
    l_strip = tonumber(mw.ustring.sub (gpar[2],2))
 end
 if mw.ustring.sub (gpar[3],1,1) == "+" then
    l_strip = tonumber(mw.ustring.sub (gpar[3],2))
 end
 if mw.ustring.sub (gpar[2],1,1) == "-" then
    r_strip = r_strip+tonumber(mw.ustring.sub (gpar[2],2))
 end
 if mw.ustring.sub (gpar[3],1,1) == "-" then
    r_strip = r_strip+tonumber(mw.ustring.sub (gpar[3],2))
 end
 return  hdr..mw.ustring.sub (gpar[1], 1+l_strip, mw.ustring.len(gpar[1])-r_strip)..trl
end

return p;

Retrieved from "https://commons.wikimedia.org/w/index.php?title=Module:Dsize&oldid=788267092"

Category: 
Modules for general use
 


Navigation menu


Personal tools  




English
Not logged in
Talk
Contributions
Create account
Log in
 


Namespaces  




Module
Discussion