Module:Dsize: Difference between revisions
From Neodyland Wiki
More actions
m + function |
m corr |
||
| Line 9: | Line 9: | ||
end | end | ||
-- function: filename | -- function: filename | ||
function p.f_name ( frame ) | function p.f_name ( frame ) | ||
local gpar = frame.args | local gpar = frame.args | ||
gpar[1] = gpar[1] or | gpar[1] = gpar[1] or mw.title.getCurrentTitle().text; | ||
gpar[2] = gpar[2] or ''; -- "+" value | gpar[2] = gpar[2] or ''; -- "+" value | ||
gpar[3] = gpar[3] or ''; -- "-" value | gpar[3] = gpar[3] or ''; -- "-" value | ||
local l_strip = 0; | local l_strip = 0; | ||
local r_strip = 0; | local r_strip = 0; | ||
if mw.ustring.sub (gpar[2],1,1) == "+" then | 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)) | l_strip = tonumber(mw.ustring.sub (gpar[2],2)) | ||
end | end | ||
if mw.ustring.sub (gpar[3],1,1) == "+" then | if mw.ustring.sub (gpar[3],1,1) == "+" then | ||
l_strip = tonumber(mw.ustring.sub (gpar[3],2)) | l_strip = tonumber(mw.ustring.sub (gpar[3],2)) | ||
end | end | ||
if mw.ustring.sub (gpar[2],1,1) == "-" then | if mw.ustring.sub (gpar[2],1,1) == "-" then | ||
r_strip = tonumber( mw.ustring.sub (gpar[2],2)) | r_strip = r_strip+tonumber(mw.ustring.sub (gpar[2],2)) | ||
end | end | ||
if mw.ustring.sub (gpar[3],1,1) == "-" then | if mw.ustring.sub (gpar[3],1,1) == "-" then | ||
r_strip = | r_strip = r_strip+tonumber(mw.ustring.sub (gpar[3],2)) | ||
end | end | ||
return mw.ustring.sub (gpar[1], 1+l_strip, #gpar[1]-r_strip) | return mw.ustring.sub (gpar[1], 1+l_strip, #gpar[1]-r_strip) | ||
Revision as of 08:19, 10 June 2023
This documentation is transcluded from Module:Dsize/doc.
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}} | 72x64px | w × h |
Module:Galeria has a similar but more powerful and complex function.
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
gpar[1] = gpar[1] or mw.title.getCurrentTitle().text;
gpar[2] = gpar[2] or ''; -- "+" value
gpar[3] = gpar[3] or ''; -- "-" value
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 mw.ustring.sub (gpar[1], 1+l_strip, #gpar[1]-r_strip)
end
return p;