-- This module implements and local p =
local function getfilename(s) s = mw.ustring.gsub(s or , '^%s*[Ff][Ii][Ll][Ee]%s*:%s*', ) s = mw.ustring.gsub(s or , '^%s*[Ii][Mm][Aa][Gg][Ee]%s*:%s*', ) return send
local function getwidth(s, w, h) w = mw.ustring.gsub(w or '0', '^%s*(%d+)%s*[Pp][Xx]*%s*$', '%1') h = mw.ustring.gsub(h or '0', '^%s*(%d+)%s*[Pp][Xx]*%s*$', '%1') w = tonumber(w) or 0 h = tonumber(h) or 0 if w > 0 then return w end local file = s and mw.title.new('File:' .. mw.uri.decode(mw.ustring.gsub(s,'%|.*$',), 'WIKI')) file = file and file.file or
if h > 0 then w = math.floor(h * (tonumber(file.width) or 0)/(tonumber(file.height) or 1) + 0.5) if w > 0 then return w end end w = tonumber(file.width) or 0 return wend
local function getimage(s, w, a, c, rtl) if c
'thumbnail' or c
'border' then c = s elseif rtl and c ~= then c = '‪' .. c .. '‬' end return ''end
local function getcontainers(noborder, float, width, maxwidth) local r = mw.html.create('div') if noborder then if float
'right' then r:addClass('floatright') elseif float
'left' then r:addClass('tleft') elseif float
'none' then r:addClass('tnone') else -- center is default r:addClass('tnone') r:css('margin-left', 'auto') r:css('margin-right', 'auto') r:css('overflow', 'hidden') end end r:css('width', width) r:css('max-width', maxwidth) local d = noborder and r or r:tag('div'):addClass('thumbinner') return r,dend function wideimage(image, width, height, caption, boxwidth, float, alt, border, capalign, dir) if image then image = getfilename(image) local iwidth = getwidth(image, width or '0', height or '0') if width
'rtl' or nil local noborder = border and border
nil then d:tag('div') :addClass('magnify') :wikitext('') end d:wikitext(caption) end return tostring(r) end return end
function p.main(frame) local getArgs = require('Module:Arguments').getArgs local args = getArgs(frame) return wideimage(args['image'] or args[1], args[2] or nil, -- width args['height'] or nil, args['caption'] or args[3], args['width'] or args[4], args['align'] or args[5], args['alt'], args['border'], args['align-cap'], args['dir'] )end
return p