Module:Param Parse: Difference between revisions

Try to add image size support
(Undo revision 2782 by Merds (talk))
Tag: Undo
(Try to add image size support)
Line 3:
--]=]
-- <nowiki>
local Infobox = require('Module:Infobox')
 
local parse = {}
Line 63 ⟶ 64:
 
-- Standardized image function
function parse.image_funcimage_name(img)
if img and string.match(img, '%[%[File:.*%]%]') then
return string.match(img, '%[%[File:(.+%.%w%w%w)|?%d*x?%d*p?x?%]%]')
return img
end
return imgnil
end
function parse.image_height(img, default)
if img then
return string.match(img, '%[%[File:.+%.%w%w%w|%d*x(%d*)px%]%]') or default
end
return default
end
function parse.image_width(img, default)
if img then
return string.match(img, '[%[File:.+%.%w%w%w|(%d*)x?%d*px%]%]') or default
end
return default
end
function parse.image_func(img, default_width, default_height)
local name = parse.image_name(img)
local width = parse.image_width(img, default_width)
local height = parse.image_height(img, default_height)
local size = ''
if width and height then
size = '|'..width..'x'..height..'px'
elseif width then
size = '|'..width..'px'
elseif height then
size = '|x'..height..'px'
end
if img then
return '[['..name..size..']]'
end
return nil
end
function parse.image_smw(img)
return img and stringparse.matchimage_name(img, "File:.*%.%w%w%w") or nil
end
 
parse.image = {
name = 'image',
func = parse.image_func,
smw_property = 'Image',
smw_func = parse.image_smw,
empty = '[[Special:Upload|Please upload an image!]]',
category_incomplete = 'Needs image',
}
parse.image_size300 = {
name = 'image',
func = {name = parse.image_func, params = {Infobox.raw_param('image'), 300, 300}},
smw_property = 'Image',
smw_func = parse.image_smw,