(Translated by https://www.hiragana.jp/)
Module:InfoboxImage:修订间差异 - 维基百科,自由的百科全书 とべ转到内容ないよう

Module:InfoboxImage:おさむ订间

维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
删除てき内容ないよう 添加てんかてき内容ないよう
en.wikipedia.org/w/index.php?title=Module:InfoboxImage&oldid=590704663
无编辑摘要てきよう
 
显示11个用户的17个中间版本はんぽん
だい1ぎょう だい1ぎょう
-- 输入: - 輸入ゆにゅう
-- 输入: - 輸入ゆにゅう
-- image - 纯文件名けんめい(带有File:/Image:ぜん缀与みなある完全かんぜん格式かくしきてき图片链接 - じゅん檔案めいおびゆうFile:/Image:くびあずかいやみなある完全かんぜん格式かくしきてきかた連結れんけつ
-- image - 纯文件名けんめい(带有File:/Image:ぜん缀与みなある完全かんぜん格式かくしきてき图片链接 - じゅん檔案めいおびゆうFile:/Image:くびあずかいやみなある完全かんぜん格式かくしきてきかた連結れんけつ
-- page - page to display for multipage images (DjVu)
-- size - 显示图像大小だいしょう - 顯示けんじ影像えいぞう大小だいしょう
-- size - 显示图像大小だいしょう - 顯示けんじ影像えいぞう大小だいしょう
-- maxsize - 图像最大さいだい大小だいしょう - 影像えいぞう最大さいだい大小だいしょう
-- maxsize - 图像最大さいだい大小だいしょう - 影像えいぞう最大さいだい大小だいしょう
だい43ぎょう だい44ぎょう
"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",
}
}


だい48ぎょう だい93ぎょう
-- 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');
assert(image ~= nil, "mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1') must not return nil")
-- remove prefix if exists
-- remove prefix if exists
local allNames = mw.site.namespaces[6].aliases
local allNames = mw.site.namespaces[6].aliases
だい115ぎょう だい163ぎょう
-- search for thumbnail images and add to tracking cat if found
-- search for thumbnail images and add to tracking cat if found
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:しんいきかまち使用しよう縮圖しゅくず語法ごほうてきぺーじめん]]";
elseif mw.title.getCurrentTitle().namespace == 0 then
return image .. "[[Category:使用しよう过时图像语法てき页面]]";
else
else
return image;
return image;
だい124ぎょう だい174ぎょう
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"];
だい138ぎょう だい192ぎょう
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
だい158ぎょう だい213ぎょう
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*")) or 0;
if sizenumber>maxsizenumber and maxsizenumber>0 then
if sizenumber>maxsizenumber and maxsizenumber>0 then
size = maxsize;
size = maxsize;
だい167ぎょう だい222ぎょう
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;
だい189ぎょう だい251ぎょう
result = result .. "|border";
result = result .. "|border";
end
end
if upright ~= "" then
if upright == "yes" then
result = result .. "|upright";
elseif upright ~= "" then
result = result .. "|upright=" .. upright;
result = result .. "|upright=" .. upright;
end
end
だい199ぎょう だい263ぎょう
elseif alt ~= "" and alt ~= nil then
elseif alt ~= "" and alt ~= nil then
result = result .. "|" .. alt;
result = result .. "|" .. alt;
end
if class ~= "" and class ~= nil then
result = result .. "|class=" .. class;
end
end
result = result .. "]]";
result = result .. "]]";

2024ねん6がつ19にち (さん) 09:07てき最新さいしん版本はんぽん

-- 输入: - 輸入ゆにゅう
--    image - 纯文件名けんめい(带有File:/Image:ぜん缀与みなある完全かんぜん格式かくしきてき图片链接 - じゅん檔案めいおびゆうFile:/Image:くびあずかいやみなある完全かんぜん格式かくしきてきかた連結れんけつ
--    page - page to display for multipage images (DjVu)
--    size - 显示图像大小だいしょう - 顯示けんじ影像えいぞう大小だいしょう
--    maxsize - 图像最大さいだい大小だいしょう - 影像えいぞう最大さいだい大小だいしょう
--    sizedefault - 如果sizeさんすうとめそらだま认显しめせ图像大小だいしょう - 如果sizeさんすうとめそらあずかしつらえ顯示けんじ影像えいぞう大小だいしょう
--    alt - 图像がえ换文ほん - 影像えいぞうかえかわ文字もじ
--    title - 图像标题ぶんほん - 影像えいぞう標題ひょうだい文字もじ
--    border - ゆう边框则设为yes - ゆうあたりかまちそくしつらえためyes
--    center - 图像需居ちゅう则设为yes - 影像えいぞう需居ちゅうのりしつらえためyes
--    upright - 垂直すいちょく图像さんすう - 垂直すいちょく影像えいぞうさんすう 
--    suppressplaceholder - 设为yes则检查图ぞう为占并停よう - しつらえためyesそくけん查影ぞうため佔位なみとまよう
--    link - てん击图ぞう时访问的页面 - てんせん影像えいぞう訪問ほうもんてきぺーじめん
-- 输出: - 輸出ゆしゅつ
--    格式かくしき图像 - 格式かくしき影像えいぞう
-- 详情请参阅"Module:InfoboxImage/doc"页面 - しょうじょう請參閱"Module:InfoboxImage/doc"ぺーじめん

local i = {};

local placeholder_image = {
    "Blue - Replace this image female.svg",
    "Blue - Replace this image male.svg",
    "Female no free image yet.png",
    "Flag of None (square).svg",
    "Flag of None.svg",
    "Flag of.svg",
    "Green - Replace this image female.svg",
    "Green - Replace this image male.svg",
    "Image is needed female.svg",
    "Image is needed male.svg",
    "Location map of None.svg",
    "Male no free image yet.png",
    "Missing flag.png",
    "No flag.svg",
    "No free portrait.svg",
    "No portrait (female).svg",
    "No portrait (male).svg",
    "Red - Replace this image female.svg",
    "Red - Replace this image male.svg",
    "Replace this image female (blue).svg",
    "Replace this image female.svg",
    "Replace this image male (blue).svg",
    "Replace this image male.svg",
    "Silver - Replace this image female.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",
}

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 [[ then remove that and anything after |
    if mw.ustring.sub(image,1,2) == "[[" then
        image = mw.ustring.sub(image,3);
        image = mw.ustring.gsub(image, "([^|]*)|.*", "%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 false
end

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 mw.ustring.lower(mw.ustring.sub(image,1,5)) == "http:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "[http:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[[http:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,6)) == "https:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[https:" then
        return "";
    end
    if mw.ustring.lower(mw.ustring.sub(image,1,8)) == "[[https:" then
        return "";
    end

    if mw.ustring.sub(image,1,2) == "[[" then
        -- search for thumbnail images and add to tracking cat if found
        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:しんいきかまち使用しよう縮圖しゅくず語法ごほうてきぺーじめん]]";
        elseif mw.title.getCurrentTitle().namespace == 0 then
            return image .. "[[Category:使用しよう过时图像语法てき页面]]";
        else
            return image;
        end
    elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" then
        return image;
    elseif mw.ustring.sub(image,1,1) == "<" then
        return image;
    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
        return image;
    else
        local result = "";
        local page = frame.args["page"];
        local size = frame.args["size"];
        local maxsize = frame.args["maxsize"];
        local sizedefault = frame.args["sizedefault"];
        local alt = frame.args["alt"];
        local link = frame.args["link"];
        local title = frame.args["title"];
        local border = frame.args["border"];
        local upright = frame.args["upright"] or "";
        local thumbtime = frame.args["thumbtime"] or "";
        local center= frame.args["center"];
        local class= frame.args["class"];        
        
        -- 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
        
        if maxsize ~= "" and maxsize ~= nil then
            -- if no sizedefault then set to maxsize
            if sizedefault == "" or sizedefault == nil then
                sizedefault = maxsize
            end
            -- check to see if size bigger than maxsize
            if size ~= "" and size ~= nil then
                local sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0;
                local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*")) or 0;
                if sizenumber>maxsizenumber and maxsizenumber>0 then
                    size = maxsize;
                end
            end
        end
        -- add px to size if just a number
        if (tonumber(size) or 0) > 0 then
            size = size .. "px";
        end
        -- add px to sizedefault if just a number
        if (tonumber(sizedefault) or 0) > 0 then
            sizedefault = sizedefault .. "px";
        end
        
        result = "[[File:" .. image;
        if page ~= "" and page ~= nil then
            result = result .. "|page=" .. page;
        end
        if size ~= "" and size ~= nil then
            result = result .. "|" .. size;
        elseif sizedefault ~= "" and sizedefault ~= nil then
            result = result .. "|" .. sizedefault;
        else
            result = result .. "|frameless";
        end
        if center == "yes" then
            result = result .. "|center"
        end
        if alt ~= "" and alt ~= nil then
            result = result .. "|alt=" .. alt;
        end
        if link ~= "" and link ~= nil then
            result = result .. "|link=" .. link;
        end
        if border == "yes" then
            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
        if class ~= "" and class ~= nil then
            result = result .. "|class=" .. class;
        end
        result = result .. "]]";
        
        return result;
    end
end

return i;