| مسابقه دانشدخت | |
| اسلامیکال از تاریخ ۱۵ دی تا ۲۰ بهمن، میزبان یک همایه با موضوع زنان است. شما میتوانید در مسابقه مقالهنویسی دانشدخت، شرکت کنید و با نگارش مقاله، از جوایز آن بهرهمند باشید. اگر به موضوعات مربوط با زنان علاقهمندید، این فرصت را از دست ندهید. فهرستی از مقالات پیشنهادی جهت ایجاد یا ویرایش در اینجا وجود دارد. |
پودمان:Gallery
پرش به ناوبری
پرش به جستجو
توضیحات این پودمان میتواند در پودمان:Gallery/توضیحات قرار گیرد.
-- This module implements {{gallery}}
local p = {}
local templatestyles = 'Module:Gallery/styles.css'
local yesno = require('Module:Yesno')
local num_con = require('Module:Numeral converter').convert
local function trim(s)
return mw.ustring.gsub(mw.ustring.gsub(s, '%s', ' '), '^%s*(.-)%s*$', '%1')
end
local tracking, preview
local function checkarg(k,v)
if k and type(k) == 'string' then
if k == 'align' or k == 'تراز' or k == 'state' or k == 'جمعشوندگی' or
k == 'style' or k == 'سبک' or k == 'title' or k == 'عنوان' or
k == 'width' or k == 'عرض' or k == 'height' or k == 'ارتفاع' or
k == 'lines' or k == 'سطرها' or k == 'whitebg' or k == 'پسزمینه سفید' or
k == 'mode' or k == 'حالت' or k == 'footer' or k == 'پاورقی' or
k == 'perrow' or k == 'در ردیف' or k == 'noborder' or k == 'بیقاب' or
mw.ustring.match(k, '^alt%d+$') or mw.ustring.match(k, '^جایگزین%d+$') or
mw.ustring.match(k, '^%d+$') then
-- valid
elseif k == 'captionstyle' or k == 'سبک زیرنویس' then
if not v:match('^text%-align%s*:%s*center[;%s]*$') then
table.insert(tracking, '[[رده:صفحههای که از نگارخانه با پارامتر سبک زیرنویس استفاده میکنند]]')
end
else
-- invalid
local vlen = mw.ustring.len(k)
k = mw.ustring.sub(k, 1, (vlen < 25) and vlen or 25)
k = mw.ustring.gsub(k, '[^%w\-_ ]', '?')
table.insert(tracking, '[[رده:صفحههایی که از نگارخانه با پارامترهای نامعلوم استفاده میکنند|' .. k .. ']]')
table.insert(preview, '«' .. k .. '»')
end
end
end
function p.gallery(frame)
-- If called via #invoke, use the args passed into the invoking template.
-- Otherwise, for testing purposes, assume args are being passed directly in.
local origArgs = (type(frame.getParent) == 'function') and frame:getParent().args or frame
-- ParserFunctions considers the empty string to be false, so to preserve the previous
-- behavior of {{gallery}}, change any empty arguments to nil, so Lua will consider
-- them false too.
local args = {}
tracking, preview = {}, {}
for k, v in pairs(origArgs) do
if v ~= '' then
args[k] = v
checkarg(k,v)
end
end
if (args.mode or args['حالت'] or '') == 'packed' or (args.mode or args['حالت'] or '') == 'بسته' and (args.align or args['تراز'] or '') == '' then
args['تراز'] = args['تراز'] or args.align
args.align = 'center'
end
local tbl = mw.html.create('div')
tbl:addClass('mod-gallery')
if args.state or args['جمعشوندگی'] then
tbl
:addClass('mod-gallery-collapsible')
:addClass('collapsible')
:addClass((args.state or args['جمعشوندگی']))
end
if args.style or args['سبک'] then
tbl:cssText(args.style or args['سبک'])
else
tbl:addClass('mod-gallery-default')
end
if args.align or args['تراز'] then
tbl:addClass('mod-gallery-' .. (args.align or args['تراز']):lower())
end
if args.title or args['عنوان'] then
args['عنوان'] = args['عنوان'] or args.title
tbl:tag('div')
:addClass('title')
:tag('div')
:wikitext(args.title or args['عنوان'])
end
local gargs = {}
gargs['class'] = 'nochecker' .. (args.noborder or args['بیقاب'] and '' or ' bordered-images')
gargs['widths'] = mw.getContentLanguage():parseFormattedNumber(args.width) or mw.getContentLanguage():parseFormattedNumber(args['عرض']) or 180
gargs['heights'] = mw.getContentLanguage():parseFormattedNumber(args.height) or mw.getContentLanguage():parseFormattedNumber(args['ارتفاع']) or 180
gargs['style'] = args.captionstyle or args['سبک زیرنویس']
gargs['perrow'] = args.perrow or args['در ردیف']
gargs['mode'] = args.mode or args['حالت']
if yesno(args.whitebg or args['پسزمینه سفید'] or 'yes') then
gargs['class'] = gargs['class'] .. ' whitebg'
end
local gallery = {}
local imageCount = math.ceil(#args / 2)
for i = 1, imageCount do
local img = trim(args[i*2 - 1] or '')
local caption = trim(args[i*2] or '')
local alt = trim(args['alt' .. i] or args['جایگزین' .. num_con("fa", i)] or '')
if img ~= '' then
table.insert(gallery, img .. (alt ~= '' and ('|alt=' .. alt) or '') .. '|' .. caption )
end
end
tbl:tag('div')
:addClass('main')
:tag('div')
:wikitext(
frame:extensionTag{ name = 'gallery', content = '\n' .. table.concat(gallery,'\n'), args = gargs}
)
if args.footer or args['پاورقی'] then
tbl:tag('div')
:addClass('footer')
:tag('div')
:wikitext(args.footer or args['پاورقی'])
end
local trackstr = (#tracking > 0) and table.concat(tracking, '') or ''
if #preview > 0 then
trackstr = require('Module:If preview')._warning({
'پارامتر نامعلوم ' .. table.concat(preview, '؛ ') .. '.'
}) .. trackstr
end
return frame:extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. tostring(tbl) .. trackstr
end
return p