Module:InfoboxImage: Difference between revisions
Appearance
pc>Rob Kam m 1 revision imported |
pc>Pppery Copy from sandbox per request |
||
Line 12: | Line 12: | ||
-- suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it | -- suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it | ||
-- link - page to visit when clicking on image | -- link - page to visit when clicking on image | ||
-- class - HTML classes to add to the image | |||
-- Outputs: | -- Outputs: | ||
-- Formatted image. | -- Formatted image. | ||
Line 21: | Line 22: | ||
"Blue - Replace this image female.svg", | "Blue - Replace this image female.svg", | ||
"Blue - Replace this image male.svg", | "Blue - Replace this image male.svg", | ||
"Flag of None (square).svg", | "Flag of None (square).svg", | ||
"Flag of None.svg", | "Flag of None.svg", | ||
Line 38: | Line 38: | ||
"Red - Replace this image female.svg", | "Red - Replace this image female.svg", | ||
"Red - Replace this image male.svg", | "Red - Replace this image male.svg", | ||
"Replace this image female.svg", | "Replace this image female.svg", | ||
"Replace this image male (blue).svg", | "Replace this image male (blue).svg", | ||
Line 88: | Line 87: | ||
"Project Trains no image.png", | "Project Trains no image.png", | ||
"Image-request.png", | "Image-request.png", | ||
"Noimage.gif", | |||
} | } | ||
local categories = { | |||
url_image_links = "[[Category:Pages using infoboxes with URL in image parameter]]", | |||
thumbnail_images = "[[Category:Pages using infoboxes with thumbnail images]]", | |||
} | |||
local function trackable() | |||
local ns = mw.title.getCurrentTitle().nsText:lower() | |||
return not (ns == 'user' or ns == 'user talk') | |||
end | |||
function i.IsPlaceholder(image) | function i.IsPlaceholder(image) | ||
Line 124: | Line 134: | ||
end | end | ||
return false | return false | ||
end | |||
local function isempty(x) | |||
return (not x) or x == "" | |||
end | end | ||
Line 129: | Line 143: | ||
local image = frame.args["image"]; | local image = frame.args["image"]; | ||
if image | if isempty(image) then | ||
return ""; | return ""; | ||
end | end | ||
Line 140: | Line 154: | ||
end | end | ||
end | end | ||
if string.find(image, "^%[*https?:") then | |||
-- Error category. | |||
return trackable() and categories.url_image_links or "" | |||
if | end | ||
if mw.ustring.sub(image,1,2) == "[[" then | if mw.ustring.sub(image,1,2) == "[[" then | ||
-- search for thumbnail images and add to tracking cat if found | -- search for thumbnail images and add to tracking cat if found | ||
local cat = ""; | |||
if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(image, "|%s*thumb%s*[|%]]") or mw.ustring.find(image, "|%s*thumbnail%s*[|%]]")) then | if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(image, "|%s*thumb%s*[|%]]") or mw.ustring.find(image, "|%s*thumbnail%s*[|%]]")) then | ||
cat = trackable() and categories.thumbnail_images or "" | |||
end | end | ||
return image .. cat; | |||
elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" then | elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" then | ||
return image; | return image; | ||
elseif mw.ustring.sub(image,1,1) == "<" then | elseif mw.ustring.sub(image,1,1) == "<" then | ||
return image; | return image; | ||
elseif mw.ustring.sub(image,1, | elseif mw.ustring.sub(image,1,8) == mw.ustring.char(127).."'\"`UNIQ" then | ||
-- Found strip marker at begining, so pass don't process at all | -- Found strip marker at begining, so pass don't process at all | ||
return image; | return image; | ||
Line 182: | Line 177: | ||
local result = ""; | local result = ""; | ||
local page = frame.args["page"]; | local page = frame.args["page"]; | ||
local upright = frame.args["upright"] or "" | |||
local size = frame.args["size"]; | local size = frame.args["size"]; | ||
local maxsize = frame.args["maxsize"]; | local maxsize = frame.args["maxsize"]; | ||
Line 189: | Line 185: | ||
local title = frame.args["title"]; | local title = frame.args["title"]; | ||
local border = frame.args["border"]; | local border = frame.args["border"]; | ||
local thumbtime = frame.args["thumbtime"] or ""; | local thumbtime = frame.args["thumbtime"] or ""; | ||
local center= frame.args["center"]; | local center = frame.args["center"]; | ||
local class = frame.args["class"]; | |||
-- remove prefix if exists | -- remove prefix if exists | ||
Line 204: | Line 200: | ||
end | end | ||
if maxsize | if not isempty(maxsize) then | ||
-- if no sizedefault then set to maxsize | -- if no sizedefault nor upright, then set to maxsize | ||
if sizedefault | if isempty(sizedefault) and isempty(upright) then | ||
sizedefault = maxsize | sizedefault = maxsize | ||
end | end | ||
-- check to see if size bigger than maxsize | -- check to see if size bigger than maxsize | ||
local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*")) or 0; | |||
if not isempty(size) then | |||
local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0; | local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0; | ||
if sizenumber > maxsizenumber and maxsizenumber > 0 then | |||
if sizenumber>maxsizenumber and maxsizenumber>0 then | |||
size = maxsize; | size = maxsize; | ||
end | |||
end | |||
-- check to see if upright bigger than maxsize (at default preferred size) | |||
if not isempty(upright) then | |||
local uprightnumber = tonumber(upright) or (upright == "yes" and 0.75) or 0 | |||
if uprightnumber*220 > maxsizenumber and maxsizenumber > 0 then | |||
upright = tostring(maxsizenumber/220) | |||
end | end | ||
end | end | ||
Line 228: | Line 231: | ||
result = "[[File:" .. image; | result = "[[File:" .. image; | ||
if page | if not isempty(page) then | ||
result = result .. "|page=" .. page; | result = result .. "|page=" .. page; | ||
end | end | ||
if size | if not isempty(size) then | ||
result = result .. "|" .. size; | result = result .. "|" .. size; | ||
elseif sizedefault | elseif not isempty(sizedefault) and isempty(upright) then | ||
result = result .. "|" .. sizedefault; | result = result .. "|" .. sizedefault; | ||
else | else | ||
Line 241: | Line 244: | ||
result = result .. "|center" | result = result .. "|center" | ||
end | end | ||
if alt | if not isempty(alt) then | ||
result = result .. "|alt=" .. alt; | result = result .. "|alt=" .. alt; | ||
end | end | ||
if link | if not isempty(link) then | ||
result = result .. "|link=" .. link; | result = result .. "|link=" .. link; | ||
end | end | ||
Line 258: | Line 261: | ||
result = result .. "|thumbtime=" .. thumbtime; | result = result .. "|thumbtime=" .. thumbtime; | ||
end | end | ||
if | if not isempty(class) then | ||
result = result .. "|class=" .. class; | |||
end | |||
-- if alt value is a keyword then do not use as a description | |||
if alt == "thumbnail" or alt == "thumb" or alt == "frameless" or alt == "left" or alt == "center" or alt == "right" or alt == "upright" or alt == "border" or mw.ustring.match(alt or "", '^[0-9]*px$', 1) ~= nil then | |||
alt = nil; | |||
end | |||
if not isempty(title) then | |||
-- does title param contain any templatestyles? If yes then set to blank. | |||
if mw.ustring.match(frame:preprocess(title), 'UNIQ%-%-templatestyles', 1) ~= nil then | |||
title = nil; | |||
end | |||
end | |||
if not isempty(title) then | |||
result = result .. "|" .. title; | result = result .. "|" .. title; | ||
end | end | ||
result = result .. "]]"; | result = result .. "]]"; |