Module:InfoboxImage: Difference between revisions
Appearance
m 1 revision imported |
Template>WOSlinker make changes from sandbox requested by User:Hike395 on talk page |
||
| Line 17: | Line 17: | ||
-- More details available at the "Module:InfoboxImage/doc" page | -- More details available at the "Module:InfoboxImage/doc" page | ||
local i = {} | local i = {} | ||
-- List of placeholder images and tracking categories stored in [[Module:InfoboxImage/data]] | |||
-- Other constants: | |||
-- the system-wide default thumbnail size (in px) | |||
local defaultThumbnailSize = 250 | |||
-- If page is not a user page, return tracking category. Else return empty. | |||
local function trackingCat(cat) | |||
local function | |||
local ns = mw.title.getCurrentTitle().nsText:lower() | local ns = mw.title.getCurrentTitle().nsText:lower() | ||
return | local categories = mw.loadData('Module:InfoboxImage/data').categories | ||
return (ns ~= 'user' and ns ~= 'user talk' and categories[cat]) or "" | |||
end | end | ||
-- Determine whether image is a placeholder | |||
function i.IsPlaceholder(image) | function i.IsPlaceholder(image) | ||
-- change underscores to spaces | -- change underscores to spaces | ||
| Line 128: | Line 60: | ||
image = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2); | image = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2); | ||
local placeholder_image = mw.loadData('Module:InfoboxImage/data').placeholder_image | |||
return placeholder_image[image] | |||
end | |||
local function isempty(x) | |||
return | return (not x) or x == "" | ||
end | end | ||
-- Main entry point | |||
function i.InfoboxImage(frame) | function i.InfoboxImage(frame) | ||
local image = frame.args["image"]; | local image = frame.args["image"]; | ||
if image | if isempty(image) then | ||
return ""; | return ""; | ||
end | end | ||
| Line 153: | Line 86: | ||
if string.find(image, "^%[*https?:") then | if string.find(image, "^%[*https?:") then | ||
-- Error category. | -- Error category. | ||
return | return trackingCat("url_image_links") | ||
end | end | ||
| Line 160: | Line 93: | ||
local cat = ""; | 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 = | cat = trackingCat("thumbnail_images") | ||
end | end | ||
return image .. cat; | return image .. cat; | ||
| Line 173: | Line 106: | ||
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 180: | Line 114: | ||
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"]; | ||
| Line 196: | Line 129: | ||
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*defaultThumbnailSize > maxsizenumber and maxsizenumber > 0 then | |||
upright = tostring(maxsizenumber/defaultThumbnailSize) | |||
end | end | ||
end | end | ||
| Line 220: | Line 160: | ||
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 233: | Line 173: | ||
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 250: | Line 190: | ||
result = result .. "|thumbtime=" .. thumbtime; | result = result .. "|thumbtime=" .. thumbtime; | ||
end | end | ||
if class | if not isempty(class) then | ||
result = result .. "|class=" .. class; | result = result .. "|class=" .. class; | ||
end | end | ||
| Line 257: | Line 197: | ||
alt = nil; | alt = nil; | ||
end | end | ||
if title | if not isempty(title) then | ||
-- does title param contain any templatestyles? If yes then set to blank. | -- does title param contain any templatestyles? If yes then set to blank. | ||
if mw.ustring.match(frame:preprocess(title), 'UNIQ%-%-templatestyles', 1) ~= nil then | if mw.ustring.match(frame:preprocess(title), 'UNIQ%-%-templatestyles', 1) ~= nil then | ||
| Line 263: | Line 203: | ||
end | end | ||
end | end | ||
if title | if not isempty(title) then | ||
result = result .. "|" .. title; | result = result .. "|" .. title; | ||
end | end | ||