![]() |
مسابقه سال اسلامیکال |
همزمان با آغاز ماه رمضان، مسابقه سال اسلامیکال با هدف معرفی اسلامیکال و توسعه مقالات در زمینه اسلامی آغاز شدهاست. علاقهمندان به شرکت در این مسابقه میتوانند تا پایان ماه رمضان ۱۴۴۶ قمری برای آن نامنویسی کنند. فهرستی از مقالات پیشنهادی جهت ایجاد در اینجا وجود دارد |
پودمان:Wide image
پرش به ناوبری
پرش به جستجو
توضیحات این پودمان میتواند در پودمان:Wide image/توضیحات قرار گیرد.
-- This module implements [[template:wide image]] and [[template:panorama]]
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*', '')
s = mw.ustring.gsub(s or '', '^%s*پرونده%s*:%s*', '')
return s
end
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('پرونده:' .. mw.uri.decode(mw.ustring.gsub(s,'%|.*$',''), 'WIKI'))
file = file and file.file or {width = 0, height = 0}
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 w
end
local function getimage(s, w, a, c, ltr)
if c == 'thumb' or c == 'thumbnail' or c == 'frame' or c == 'border' or c == 'انگشتی' or c == 'بندانگشتی' or c == 'قاب' then
c = s
elseif ltr and c ~= '' then
c = '‪' .. c .. '‬'
end
return '[[پرونده:' .. (s or '') .. '|' .. (w or '') .. '|alt=' .. (a or '')
.. '|' .. mw.text.unstrip(c or '') .. ']]'
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('floatleft')
elseif float == 'none' then
r:addClass('floatnone')
else -- center is default
r:addClass('floatnone')
r:css('margin-left', 'auto')
r:css('margin-right', 'auto')
r:css('overflow', 'hidden')
end
else
r:addClass('thumb')
if float == 'left' then
r:addClass('tleft')
elseif float == 'right' then
r:addClass('tright')
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,d
end
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 == nil then
width = iwidth .. 'px'
end
local ltr = dir and dir == 'ltr' or nil
local noborder = border and border == 'no' or nil
local maxwidth = noborder and (iwidth .. 'px') or ((iwidth + 8) .. 'px')
local r,d = getcontainers(noborder, float or '', boxwidth or 'auto', maxwidth)
--to convert وسط, چپ and راست to friendly align values for MediaWiki software
if capalign then
if capalign == 'وسط' then
capalign = 'center'
elseif capalign == 'چپ' then
capalign = 'left'
elseif capalign == 'راست' then
capalign = 'right'
end
end
if tonumber(width) then
width = width .. 'px'
end
d:tag('div')
:addClass('noresize')
:css('overflow', 'auto')
:css('direction', ltr and 'ltr' or nil)
:wikitext(getimage(image,width,alt,caption or '',ltr))
if caption then
d = d:tag('div')
:addClass('thumbcaption')
:css('text-align', capalign)
if noborder == nil then
d:tag('div')
:addClass('magnify')
:wikitext('[[:پرونده:' .. image .. '| ]]')
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['تصویر'] or args[1], args[2] or nil, -- width
args['height'] or args['ارتفاع'] or nil, args['caption'] or args['زیرنویس'] or args['توضیح'] or args[3],
args['width'] or args['پهنا'] or args['عرض'] or args[4], args['align'] or args['تراز'] or args[5],
args['alt'] or args['جایگزین'], args['border'] or args['قاب'], args['align-cap'] or args['تراز زیرنویس'] or args['تراز توضیح'], args['dir'] or args['جهت']
)
end
return p