Module:InfoboxImage/sandbox explained

-- Inputs:-- image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link-- page - page to display for multipage images (DjVu)-- size - size to display the image-- maxsize - maximum size for image-- sizedefault - default size to display the image if size param is blank-- alt - alt text for image-- title - title text for image-- border - set to yes if border-- center - set to yes, if the image has to be centered-- upright - upright image param-- suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it-- link - page to visit when clicking on image-- class - HTML classes to add to the image-- Outputs:-- Formatted image.-- More details available at the "Module:InfoboxImage/doc" page

local i = ;

local placeholder_image =

local categories =

local function trackable local ns = mw.title.getCurrentTitle.nsText:lower return not (ns

'user' or ns

'user talk')end

function i.IsPlaceholder(image) -- change underscores to spaces image = mw.ustring.gsub(image, "_", " "); assert(image ~= nil, 'mw.ustring.gsub(image, "_", " ") must not return nil') -- if image starts with if mw.ustring.sub(image,1,2)

"]*)|.*", "%1"); assert(image ~= nil, 'mw.ustring.gsub(image, "([^|]*)|.*", "%1") must not return nil') end -- Trim spaces image = mw.ustring.gsub(image, '^[]*(.-)[]*$', '%1'); assert(image ~= nil, "mw.ustring.gsub(image, '^[]*(.-)[]*$', '%1') must not return nil") -- remove prefix if exists local allNames = mw.site.namespaces[6].aliases allNames[#allNames + 1] = mw.site.namespaces[6].name allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName for i, name in ipairs(allNames) do if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1))

mw.ustring.lower(name .. ":") then image = mw.ustring.sub(image, mw.ustring.len(name) + 2); break end end -- Trim spaces image = mw.ustring.gsub(image, '^[]*(.-)[]*$', '%1'); -- capitalise first letter image = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2);

for i,j in pairs(placeholder_image) do if image

j then return true end end return falseend

function i.InfoboxImage(frame) local image = frame.args["image"]; if image

"" or image

nil then return ""; end if image

" " then return image; end if frame.args["suppressplaceholder"] ~= "no" then if i.IsPlaceholder(image)

true then return ""; end end if string.find(image, "^%[*https?:") then -- Error category. return trackable and categories.url_image_links or "" end if mw.ustring.sub(image,1,2) == "[[" then -- 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 cat = trackable and categories.thumbnail_images or "" end return image .. cat; elseif mw.ustring.sub(image,1,2)

"