پودمان:Check for clobbered parameters: تفاوت میان نسخهها
پرش به ناوبری
پرش به جستجو
جز (۱ نسخه واردشده) |
جز (۱ نسخه واردشده) |
||
(یک نسخهٔ میانی ویرایش شده توسط یک کاربر دیگر نشان داده نشد) | |||
خط ۲: | خط ۲: | ||
local function trim(s) | local function trim(s) | ||
return | return mw.ustring.match(s, '^%s*(.-)%s*$') | ||
end | end | ||
local function isnotempty(s) | local function isnotempty(s) | ||
return s and | return s and mw.ustring.match(s, '%S') | ||
end | end | ||
خط ۳۷: | خط ۳۷: | ||
local res = '' | local res = '' | ||
local cat = '' | local cat = '' | ||
if args['cat'] and mw.ustring.match(args['cat'],'^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:') then | if args['cat'] and ( | ||
mw.ustring.match(args['cat'],'^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:') or | |||
mw.ustring.match(args['cat'],'^رده:') | |||
) | |||
then | |||
cat = args['cat'] | cat = args['cat'] | ||
end | end | ||
local template = args['template'] and 'در ' .. args['template'] or '' | local template = args['template'] and ' در ' .. args['template'] or '' | ||
if #argpairs > 0 then | if #argpairs > 0 then | ||
for i, v in ipairs( argpairs ) do | for i, v in ipairs( argpairs ) do | ||
خط ۴۶: | خط ۵۰: | ||
warnmsg, | warnmsg, | ||
mw.ustring.format( | mw.ustring.format( | ||
'از بیش از یکی از | 'استفاده از بیش از یکی از پارامترهای زیر%s: <code>%s</code>.', | ||
template, | template, | ||
table.concat(v, '</code>, <code>') | table.concat(v, '</code>, <code>') |
نسخهٔ کنونی تا ۲۲ دسامبر ۲۰۲۴، ساعت ۱۷:۲۶
توضیحات این پودمان میتواند در پودمان:Check for clobbered parameters/توضیحات قرار گیرد.
local p = {}
local function trim(s)
return mw.ustring.match(s, '^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and mw.ustring.match(s, '%S')
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
local checknested = isnotempty(args['nested'])
local delimiter = isnotempty(args['delimiter']) and args['delimiter'] or ';'
local argpairs = {}
for k, v in pairs(args) do
if type(k) == 'number' then
local plist = mw.text.split(v, delimiter)
local pfound = {}
local count = 0
for ii, vv in ipairs(plist) do
vv = trim(vv)
if checknested and pargs[vv] or isnotempty(pargs[vv]) then
count = count + 1
table.insert(pfound, vv)
end
end
if count > 1 then
table.insert(argpairs, pfound)
end
end
end
local warnmsg = {}
local res = ''
local cat = ''
if args['cat'] and (
mw.ustring.match(args['cat'],'^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:') or
mw.ustring.match(args['cat'],'^رده:')
)
then
cat = args['cat']
end
local template = args['template'] and ' در ' .. args['template'] or ''
if #argpairs > 0 then
for i, v in ipairs( argpairs ) do
table.insert(
warnmsg,
mw.ustring.format(
'استفاده از بیش از یکی از پارامترهای زیر%s: <code>%s</code>.',
template,
table.concat(v, '</code>, <code>')
)
)
if cat ~= '' then
res = res .. '[[' .. cat .. '|' .. (v[1] == '' and ' ' or '') .. v[1] .. ']]'
end
end
end
if #warnmsg > 0 then
res = require('Module:If preview')._warning({
table.concat(warnmsg, '<br>')
}) .. res
end
return res
end
return p