stringtranslate.com

Модуль:InfoboxImage

-- Входные данные: -- image - может быть либо простым именем файла (с префиксом File:/Image: или без него), либо полностью отформатированной ссылкой на изображение -- page - страница для отображения многостраничных изображений (DjVu) -- size - размер для отображения изображения -- maxsize - максимальный размер для изображения -- sizedefault - размер по умолчанию для отображения изображения, если параметр size пуст -- alt - альтернативный текст для изображения -- title - текст заголовка для изображения -- border - установить на yes, если border -- center - установить на yes, если изображение должно быть центрировано -- upright - параметр изображения upright -- suppressplaceholder - если да, то проверяет, является ли изображение заполнителем, и подавляет его -- link - страница, которую нужно посетить при нажатии на изображение -- class - HTML-классы для добавления к изображению -- Выходные данные: -- Форматированное изображение. -- Более подробную информацию можно найти на странице "Module:InfoboxImage/doc" local i = {}; local placeholder_image = { "Синий - Заменить это изображение female.svg" , "Синий - Заменить это изображение male.svg" , "Флаг None (квадрат).svg" , "Флаг None.svg" , "Флаг .svg" , "Зелёный - Заменить это изображение female.svg" , "Зелёный - Заменить это изображение male.svg" , "Требуется изображение female.svg" , "Требуется изображение male.svg" , "Карта местонахождения None.svg" , "Мужской пока нет свободного изображения.png" , "Отсутствует флаг.png" , "Нет флага.svg" , "Нет свободного портрета.svg" , "Нет портрета (женщина).svg" , "Нет портрета (мужчина).svg" , "Красный - Заменить это изображение female.svg" , "Красный - Заменить это изображение male.svg" , "Заменить это изображение female.svg" , "Заменить это изображение male (blue).svg" , "Заменить это изображение male.svg" , "Silver - Заменить это изображение female.svg" , "Silver - Заменить это изображение male.svg" , "Заменить это изображение.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 HET square.png" , "NO IMAGE HET.png" , "No Photo Available.svg" , "No Screenshot.svg" , "No-image-available.jpg" , "Null.png" , "PictureNeeded.gif" , "Placeholder.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" , "Noimage.gif" , } локальные категории = { url_image_links = "[[Категория:Страницы, использующие инфобоксы с URL в параметре изображения]]" , thumbnail_images = "[[Категория:Страницы, использующие инфобоксы с миниатюрой images]]" , } локальная функция trackable () локальная ns = mw . title . getCurrentTitle () . nsText : lower () return not ( ns == 'user' или ns == 'user talk' ) end function i .IsPlaceholder ( image ) заменить подчеркивания на пробелы image = mw.ustring.gsub ( image , " _" , "" ) ; assert ( image ~ =                              nil ,  'mw.ustring.gsub(image, "_", " ") не должно возвращать nil' ) -- если изображение начинается с [[, то удалите его и все, что после | 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") не должно возвращать nil' ) end -- Удаляем пробелы image = mw .ustring .gsub ( image , '^[ ]*(.-)[ ]*$' , ' % 1' ) ; assert ( image ~ = nil , " mw.ustring.gsub ( image, '^[ ]*(.-)[ ]*$', '%1') must not return nil " ) -- удалить префикс , если он существует 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 .ниже (                                                          name  ..  ":" )  then image = mw . ustring . sub ( image , mw . ustring . len ( name ) + 2 ); break end end -- Удаляем пробелы image = mw . ustring . gsub ( image , '^[ ]*(.-)[ ]*$' , '%1' ); -- Делаем первую букву заглавной 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 string. find ( image , "^%[*https?:" ) then -- Категория ошибки. return trackable () и категории .url_image_links или "" конец                                                                                        if  mw . ustring . sub ( image , 1 , 2 )  ==  "[["  then -- поиск изображений миниатюр и добавление в отслеживание 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 cat = trackable () and categories . thumbnail_images or "" end return image .. cat ; 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 , 8 ) == mw . ustring . char ( 127 ) .. "' \" `UNIQ" then -- В начале обнаружен маркер полосы, поэтому проход вообще не обрабатывается return image ; else локальный результат = "" ; локальная страница = рамка . 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" ] или "" ; local thumbtime = frame . args [ "thumbtime" ] или "" ; local center = frame . args [ "center" ]; local class = frame . args [ "class" ]; -- удалить префикс, если он существует local allNames = mw . site . namespaces [ 6 ]. aliases allNames [ # allNames + 1 ] = mw . site . пространства имен [ 6 ]. имя allNames [ # allNames + 1 ] = mw . site . namespaces [ 6 ]. canonicalName для i , имя в ipairs ( allNames ) do if mw . ustring . lower ( mw . ustring . sub ( image , 1 , mw . ustring .лен ( имя ) + 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 -- если нет sizedefault, то установить maxsize if sizedefault == "" или sizedefault == nil then sizedefault = maxsize end -- проверить, больше ли size, чем maxsize if size ~= "" and size ~= nil then local sizenumber = tonumber ( mw . ustring . match ( size , "%d*" )) или 0 ; local maxsizenumber = tonumber ( mw . ustring . match ( maxsize , "%d*" )) или 0 ; if sizenumber > maxsizenumber and maxsizenumber > 0 then size = maxsize ; end end end -- добавить px к size, если это просто число if ( tonumber ( size ) или 0 ) > 0 then size = size .. "px" ; end -- добавить px к sizedefault, если это просто число if ( tonumber ( sizedefault ) или 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 class ~= nil and class ~= "" then result = result .. "|class=" ..класс ; конец -- если alt-значение является ключевым словом, то не используйте его в качестве описания , если alt == "thumbnail" или alt                                                                                                                                                                    ==  "thumb"  или  alt  ==  "frameless"  или  alt  ==  "left"  или  alt  ==  "center"  или  alt  ==  "right"  или  alt  ==  "upright"  или  alt  ==  "border"  или  mw . ustring . match ( alt  или  "" ,  '^[0-9]*px$' ,  1 )  ~=  nil  then alt = nil ; end if title ~= "" and title ~= nil then -- содержит ли параметр title какие-либо templatestyles? Если да, то установите его пустым. if mw . ustring . match ( frame : preprocess ( title ), 'UNIQ%-%-templatestyles' , 1 ) ~= nil then title = nil ; end end if title ~= "" and title ~= nil then result = result .. "|" .. title ; end result = result .. "]]" ; вернуть результат ; конец конец вернуть i ;