Module:InfoboxImage: Difference between revisions
From Test Wiki
Content deleted Content added
m 1 revision imported |
Created page with "-- Inputs: -- image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link -- size - size to display the image -- m..." |
||
| Line 1: | Line 1: | ||
-- Inputs: |
-- Inputs: |
||
-- image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link |
-- 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 |
-- size - size to display the image |
||
-- maxsize - maximum size for image |
-- maxsize - maximum size for image |
||
-- sizedefault - default size to display the image if size param is blank |
-- sizedefault - default size to display the image if size param is blank |
||
-- alt - alt text for image |
-- 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 |
-- suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it |
||
-- link - page to visit when clicking on image |
|||
-- Outputs: |
-- Outputs: |
||
-- Formatted image. |
-- Formatted image. |
||
| Line 44: | Line 38: | ||
"Silver - Replace this image female.svg", |
"Silver - Replace this image female.svg", |
||
"Silver - Replace this image male.svg", |
"Silver - Replace this image male.svg", |
||
"Replace this image.svg", |
|||
"Cricket no pic.png", |
|||
"CarersLogo.gif", |
|||
"Diagram Needed.svg", |
|||
"Example.jpg", |
|||
"Image placeholder.png", |
|||
"No male portrait.svg", |
|||
"Nocover-upload.png", |
|||
"NoDVDcover copy.png", |
|||
"Noribbon.svg", |
|||
"No portrait-BFD-test.svg", |
|||
"Placeholder barnstar ribbon.png", |
|||
"Project Trains no image.png", |
|||
"Image-request.png", |
|||
"Sin bandera.svg", |
|||
"Sin escudo.svg", |
|||
"Replace this image - temple.png", |
|||
"Replace this image butterfly.png", |
|||
"Replace this image.svg", |
|||
"Replace this image1.svg", |
|||
"Resolution angle.png", |
|||
"Image-No portrait-text-BFD-test.svg", |
|||
"Insert image here.svg", |
|||
"No image available.png", |
|||
"NO IMAGE YET square.png", |
|||
"NO IMAGE YET.png", |
|||
"No Photo Available.svg", |
|||
"No Screenshot.svg", |
|||
"No-image-available.jpg", |
|||
"Null.png", |
|||
"PictureNeeded.gif", |
|||
"Place holder.jpg", |
|||
"Unbenannt.JPG", |
|||
"UploadACopyrightFreeImage.svg", |
|||
"UploadAnImage.gif", |
|||
"UploadAnImage.svg", |
|||
"UploadAnImageShort.svg", |
|||
"CarersLogo.gif", |
|||
"Diagram Needed.svg", |
|||
"No male portrait.svg", |
|||
"NoDVDcover copy.png", |
|||
"Placeholder barnstar ribbon.png", |
|||
"Project Trains no image.png", |
|||
"Image-request.png", |
|||
} |
} |
||
| Line 93: | Line 43: | ||
-- change underscores to spaces |
-- change underscores to spaces |
||
image = mw.ustring.gsub(image, "_", " "); |
image = mw.ustring.gsub(image, "_", " "); |
||
assert(image ~= nil, 'mw.ustring.gsub(image, "_", " ") must not return nil') |
|||
-- if image starts with [[ then remove that and anything after | |
-- if image starts with [[ then remove that and anything after | |
||
if mw.ustring.sub(image,1,2) == "[[" then |
if mw.ustring.sub(image,1,2) == "[[" then |
||
image = mw.ustring.sub(image,3); |
image = mw.ustring.sub(image,3); |
||
image = mw.ustring.gsub(image, "([^|]*)|.*", "%1"); |
image = mw.ustring.gsub(image, "([^|]*)|.*", "%1"); |
||
assert(image ~= nil, 'mw.ustring.gsub(image, "([^|]*)|.*", "%1") must not return nil') |
|||
end |
end |
||
-- Trim spaces |
-- Trim spaces |
||
image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1'); |
image = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1'); |
||
-- remove file: or image: prefix if exists |
|||
assert(image ~= nil, "mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1') must not return nil") |
|||
if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "file:" then |
|||
-- remove prefix if exists |
|||
image = mw.ustring.sub(image,6); |
|||
end |
|||
allNames[#allNames + 1] = mw.site.namespaces[6].name |
|||
if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "image:" then |
|||
allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName |
|||
image = mw.ustring.sub(image,7); |
|||
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 |
end |
||
-- Trim spaces |
-- Trim spaces |
||
| Line 135: | Line 79: | ||
return image; |
return image; |
||
end |
end |
||
if frame.args["suppressplaceholder"] |
if frame.args["suppressplaceholder"] == "yes" then |
||
if i.IsPlaceholder(image) == true then |
if i.IsPlaceholder(image) == true then |
||
return ""; |
return ""; |
||
| Line 164: | Line 108: | ||
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 |
||
return image .. "[[Category:Pages using infoboxes with thumbnail images]]"; |
return image .. "[[Category:Pages using infoboxes with thumbnail images]]"; |
||
elseif mw.title.getCurrentTitle().namespace == 0 then |
|||
return image .. "[[Category:Pages using deprecated image syntax]]"; |
|||
else |
else |
||
return image; |
return image; |
||
| Line 174: | Line 116: | ||
return image; |
return image; |
||
elseif mw.ustring.sub(image,1,5) == mw.ustring.char(127).."UNIQ" then |
elseif mw.ustring.sub(image,1,5) == mw.ustring.char(127).."UNIQ" then |
||
-- Found strip marker at begining, so pass don't process at all |
|||
return image; |
|||
elseif mw.ustring.sub(image,4,9) == "`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; |
||
else |
else |
||
local result = ""; |
local result = ""; |
||
local page = frame.args["page"]; |
|||
local size = frame.args["size"]; |
local size = frame.args["size"]; |
||
local maxsize = frame.args["maxsize"]; |
local maxsize = frame.args["maxsize"]; |
||
local sizedefault = frame.args["sizedefault"]; |
local sizedefault = frame.args["sizedefault"]; |
||
local alt = frame.args["alt"]; |
local alt = frame.args["alt"]; |
||
local link = frame.args["link"]; |
|||
local title = frame.args["title"]; |
|||
local border = frame.args["border"]; |
local border = frame.args["border"]; |
||
local upright = frame.args["upright"] or ""; |
|||
local thumbtime = frame.args["thumbtime"] or ""; |
|||
local center= frame.args["center"]; |
|||
-- remove prefix if exists |
-- remove file: or image: prefix if exists |
||
if mw.ustring.lower(mw.ustring.sub(image,1,5)) == "file:" then |
|||
local allNames = mw.site.namespaces[6].aliases |
|||
image = mw.ustring.sub(image,6); |
|||
end |
|||
allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName |
|||
if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "image:" then |
|||
for i, name in ipairs(allNames) do |
|||
image = mw.ustring.sub(image,7); |
|||
image = mw.ustring.sub(image, mw.ustring.len(name) + 2); |
|||
break |
|||
end |
|||
end |
end |
||
| Line 212: | Line 142: | ||
if size ~= "" and size ~= nil then |
if size ~= "" and size ~= nil then |
||
local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0; |
local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0; |
||
local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*")) |
local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*")); |
||
if sizenumber>maxsizenumber and maxsizenumber>0 then |
if sizenumber>maxsizenumber and maxsizenumber>0 then |
||
size = maxsize; |
size = maxsize; |
||
| Line 221: | Line 151: | ||
if (tonumber(size) or 0) > 0 then |
if (tonumber(size) or 0) > 0 then |
||
size = size .. "px"; |
size = size .. "px"; |
||
end |
|||
-- add px to sizedefault if just a number |
|||
if (tonumber(sizedefault) or 0) > 0 then |
|||
sizedefault = sizedefault .. "px"; |
|||
end |
end |
||
result = "[[File:" .. image; |
result = "[[File:" .. image; |
||
if page ~= "" and page ~= nil then |
|||
result = result .. "|page=" .. page; |
|||
end |
|||
if size ~= "" and size ~= nil then |
if size ~= "" and size ~= nil then |
||
result = result .. "|" .. size; |
result = result .. "|" .. size; |
||
| Line 237: | Line 160: | ||
else |
else |
||
result = result .. "|frameless"; |
result = result .. "|frameless"; |
||
end |
|||
if center == "yes" then |
|||
result = result .. "|center" |
|||
end |
end |
||
if alt ~= "" and alt ~= nil then |
if alt ~= "" and alt ~= nil then |
||
result = result .. "|alt=" .. alt; |
result = result .. "|alt=" .. alt; |
||
end |
|||
if link ~= "" and link ~= nil then |
|||
result = result .. "|link=" .. link; |
|||
end |
end |
||
if border == "yes" then |
if border == "yes" then |
||
result = result .. "|border"; |
result = result .. "|border"; |
||
end |
|||
if upright == "yes" then |
|||
result = result .. "|upright"; |
|||
elseif upright ~= "" then |
|||
result = result .. "|upright=" .. upright; |
|||
end |
|||
if thumbtime ~= "" then |
|||
result = result .. "|thumbtime=" .. thumbtime; |
|||
end |
|||
if title ~= "" and title ~= nil then |
|||
result = result .. "|" .. title; |
|||
elseif alt ~= "" and alt ~= nil then |
|||
result = result .. "|" .. alt; |
|||
end |
end |
||
result = result .. "]]"; |
result = result .. "]]"; |
||