-- 입력: -- 그림 - 파일 또는 그림의 전체이름 (파일:/그림: 포함 또는 미포함) -- 크기 - 그림 크기 지정 -- 최대 - 그림 최대크기 -- 기본 - 크기 지정이 없을 경우데 기본값 -- 설명 - 그림 설명 -- 테두리 - set to yes if border -- 가운데 - set to yes, if the image has to be centered -- upright - upright image param -- 그림숨김 - if yes then checks to see if image is a placeholder and suppresses it -- 연결 - 파일 클릭시 연결 링크 -- 출력: -- 수정된 이미지. -- 자세한 사항은 "Module:InfoboxImage/설명문서" 참조
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", }
function i.IsPlaceholder(image) -- change underscores to spacesimage = mw.ustring.gsub(image, "_", " ");-- if image starts with [[then remove that and anything after |if mw.ustring.sub(image,1,2) == "[[" thenimage = mw.ustring.sub(image,3);image = mw.ustring.gsub(image, "([^|]*)|.*", "%1"); end-- Trim spacesimage = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1');-- remove prefix if existslocal allNames = mw.site.namespaces[6].aliasesallNames[#allNames + 1] = mw.site.namespaces[6].nameallNames[#allNames + 1] = mw.site.namespaces[6].canonicalNamefor i, name in ipairs(allNames) doif mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. ":") thenimage = mw.ustring.sub(image, mw.ustring.len(name) + 2);break end end-- Trim spacesimage = mw.ustring.gsub(image, '^[ ]*(.-)[ ]*$', '%1');-- capitalise first letterimage = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2);for i,j in pairs(placeholder_image) doif image == j thenreturn true end endreturn false end
function i.InfoboxImage(frame) local image = frame.args["그림"];if image == "" or image == nil thenreturn ""; endif image == " " thenreturn image; endif frame.args["그림숨김"] == "예" thenif i.IsPlaceholder(image) == true thenreturn ""; end endif mw.ustring.lower(mw.ustring.sub(image,1,5)) == "http:" thenreturn ""; endif mw.ustring.lower(mw.ustring.sub(image,1,6)) == "[http:" thenreturn ""; endif mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[[http:" thenreturn ""; endif mw.ustring.lower(mw.ustring.sub(image,1,6)) == "https:" thenreturn "";
endif mw.ustring.lower(mw.ustring.sub(image,1,7)) == "[https:" thenreturn ""; endif mw.ustring.lower(mw.ustring.sub(image,1,8)) == "[[https:" thenreturn ""; endif mw.ustring.sub(image,1,2) == "%s*thumb%s*[|%") or mw.ustring.find(image, "|%s*thumbnail%s*[|%]]")) thenreturn image .. ""; elsereturn image; end elseif mw.ustring.sub(image,1,2) == "{{" and mw.ustring.sub(image,1,3) ~= "{{{" thenreturn image; elseif mw.ustring.sub(image,1,1) == "<" thenreturn 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 allreturn image; elselocal result = "";local size = frame.args["크기"];local maxsize = frame.args["최대"];local sizedefault = frame.args["기본"];local alt = frame.args["설명"];local link = frame.args["연결"];local title = frame.args["제목"];local border = frame.args["테두리"];local upright = frame.args["upright"] or "";local thumbtime = frame.args["thumbtime"] or "";local center= frame.args["가운데"];
-- remove prefix if existslocal allNames = mw.site.namespaces[6].aliasesallNames[#allNames + 1] = mw.site.namespaces[6].nameallNames[#allNames + 1] = mw.site.namespaces[6].canonicalNamefor i, name in ipairs(allNames) doif mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. ":") thenimage = mw.ustring.sub(image, mw.ustring.len(name) + 2);break
end
endif maxsize ~= "" and maxsize ~= nil then-- if no sizedefault then set to maxsizeif sizedefault == "" or sizedefault == nil thensizedefault = maxsize
end-- check to see if size bigger than maxsizeif size ~= "" and size ~= nil thenlocal sizenumber = tonumber(mw.ustring.match(size,"%d*")) or 0;local maxsizenumber = tonumber(mw.ustring.match(maxsize,"%d*"));if sizenumber>maxsizenumber and maxsizenumber>0 thensize = maxsize;
end
end
end-- add px to size if just a numberif (tonumber(size) or 0) > 0 thensize = size .. "px";
end
result = "" .. alt; endresult = result .. "";return result;end end
return i;