ماڊيول:Redirect hatnote
ڏيک
| هي سانچو ھزارين صفحن تي استعمال ٿئي ٿو، تنهنڪري ان ۾ ڪيل تبديليون وڏي پيماني تي نظر اچي سگهن ٿيون۔ تبديليون لاڳو ڪرڻ کان اڳ، مهرباني ڪري انهن کي سانچي جي /ريتخاني يا /آزمائشي حالتون وارن ذيلي صفحن ۾ آزمائي ڏسو، يا پنهنجي يوزر ذيلي صفحي ۾ جانچ ڪريو۔ تبديليون لاڳو ڪرڻ کان اڳ ڳالهيون صفحي تي بحث ڪرڻ تي پڻ غور ڪيو۔ |
| 500 "مهانگيون پارسر فنڪشن ڪالون" (مثال طور #ifexist:، PAGESIZE:، ۽ PAGESINCATEGORY:) جي سرور حد سبب، هي سانچو رڳو تڏهن صحيح نموني ڪم ڪندو جڏهن اهو استعمال ڪندڙ صفحو اڳ ۾ ئي اها حد نه اورانگهيو هجي۔ جڏهن اها حد اورانگهي ويندي، تڏهن هن سانچي يا ماڊيول کي استعمال ڪندڙ صفحو زمرو:تمام گهڻين مهانگين پارسر فنڪشن ڪالن وارا صفحا ۾ شامل ڪيو ويندو۔ (وڌيڪ ڄاڻ) |
| هي سانچو آهي۔ |
| هي سانچو لوا استعمال ڪري ٿو: |
ھي ماڊيول ھڪ ھيٽ نوٽ تيار ڪري ٿو، جيڪو اُن صفحي جي ابهام ختم ڪرڻ لاءِ استعمال ٿيندو آھي، جنھن ڏانھن ڪنھن ڏنل ريڊائريڪٽ ذريعي ڳنڍيو ويو ھجي۔ ھي {{redirect}} ھيٽ نوٽ سانچي کي عمل ۾ آڻي ٿو۔
وڪي متن مان استعمال
ھي ماڊيول سڌو سنئون وڪي متن مان استعمال نٿو ڪري سگھجي۔ ان جي بدران {{redirect}} يا {{redirect2}} سانچا استعمال ڪريو۔
لُوا مان استعمال
ھن ماڊيول کي لُوا مان استعمال ڪرڻ لاءِ، سڀ کان پھريان ماڊيول لوڊ ڪريو۔
local mRedirectHatnote = require('ماڊيول:Redirect hatnote')
ان کان پوءِ ماڊيول کي ھيٺين نحو سان استعمال ڪري سگھجي ٿو:
mRedirectHatnote._redirect(redirect, data, options, titleObj)
پڻ ڏسو
--[[
-- ھي ماڊيول "redirect" ھيٽ نوٽ تيار ڪري ٿو. اھو ھن طرح نظر ايندو:
-- '"X" ھتي ريڊائريڪٽ ٿئي ٿو. ٻين استعمالن لاءِ، Y ڏسو.'
-- ھي {{redirect}} سانچي کي عمل ۾ آڻي ٿو.
--]]
local mHatnote = require('ماڊيول:Hatnote')
local mHatList = require('ماڊيول:Hatnote list')
local mArguments --lazily initialize
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local checkTypeMulti = libraryUtil.checkTypeMulti
local p = {}
--------------------------------------------------------------------------------
-- مددگار فنڪشن
--------------------------------------------------------------------------------
local function getTitle(...)
-- mw.title.new کي سڏي ٿو ۽ يا تہ title object واپس ڪري ٿو، يا غلطي تي nil
local success, titleObj = pcall(mw.title.new, ...)
return success and titleObj or nil
end
--------------------------------------------------------------------------------
-- مکيه فنڪشن
--------------------------------------------------------------------------------
function p.redirect(frame)
mArguments = require('ماڊيول:Arguments')
local args = mArguments.getArgs(frame, {parentOnly=true})
-- ريڊائريڪٽن جو تعداد حاصل ڪريو
local numRedirects = tonumber(frame.args[1]) or 1
-- اختيارن جي جدول ٺاھيو.
local options = {}
options.selfref = args.selfref
return p._redirect(args, numRedirects, options)
end
function p._redirect(args, numRedirects, options, currentTitle, redirectTitle, targetTitle)
-- اِن پُٽ جي تصديق ڪريو. currentTitle، redirectTitle يا
-- targetTitle جي جاچ جي ضرورت ناھي، ڇو تہ اھي فقط testing ۾ استعمال ٿين ٿا.
checkType('_redirect', 1, args, 'table')
checkType('_redirect', 2, numRedirects, 'number', true)
numRedirects = numRedirects or 1
checkType('_redirect', 3, options, 'table', true)
options = options or {}
currentTitle = currentTitle or mw.title.getCurrentTitle()
-- ريڊائريڪٽن جي جدول حاصل ڪريو
local redirect = {}
for i = 1, numRedirects do
-- جيڪڏھن ريڊائريڪٽ وارو پيرا ميٽر غائب ھجي تہ غلطي واپس ڪريو.
if not args[i] then
return mHatnote.makeWikitextError(
'ريڊائريڪٽ وارو پيرا ميٽر غائب آھي',
'سانچو:Redirect#Errors',
args.category
)
end
redirect[i] = args[i]
end
-- متن تيار ڪريو.
local formattedRedirect = {}
for k,v in pairs(redirect) do
formattedRedirect[k] = mHatnote.quote(v)
end
local text = {
mHatList.andList(formattedRedirect) .. ' ' .. (#redirect == 1 and 'ھتي ريڊائريڪٽ ٿئي ٿو.' or 'ھتي ريڊائريڪٽ ٿين ٿا.'),
mHatList._forSee(args, #redirect + 1, {title = redirect[1], extratext = args.text})
}
text = table.concat(text, ' ')
-- زمرا شامل ڪرڻ واري ڪارڪردگي
local categoryTable = {}
local function addCategory(cat)
if cat and cat ~= '' then
-- duplicates کان بچڻ لاءِ index ذريعي شامل ڪريو
categoryTable[string.format('[[زمرو:%s]]', cat)] = true
end
end
-- ٽريڪنگ وارا زمرا تيار ڪريو
local mhOptions = {}
local redirTitle
for k,v in pairs(redirect) do
-- جيڪڏھن سانچي جو استعمال سڌو دستاويزن مان نقل ڪيو ويو ھجي،
-- يا اسان mainspace يا زمرو-فضا ۾ نه ھجون تہ tracking زمري جي ضرورت ناھي.
if not v:find('^REDIRECT%d*$') and v ~= 'TERM'
and currentTitle.namespace == 0 or currentTitle.namespace == 14
then
redirTitle = redirectTitle or getTitle(v)
if not redirTitle or not redirTitle.exists then
addCategory('غائب ريڊائريڪٽ')
elseif not redirTitle.isRedirect then
if string.find(redirTitle:getContent(), '#invoke:RfD') then
addCategory('ريڊائريڪٽ ھيٽ نوٽن وارا مضمون جيڪي RfD کان متاثر آھن')
else
addCategory('ريڊائريڪٽ ھيٽ نوٽن وارا مضمون جن کي جائزي جي ضرورت آھي')
end
else
local target = targetTitle or redirTitle.redirectTarget
if target and target ~= currentTitle then
addCategory('ريڊائريڪٽ ھيٽ نوٽن وارا مضمون جن کي جائزي جي ضرورت آھي')
end
end
end
-- [[ماڊيول:Hatnote]] ڏانھن موڪلڻ لاءِ اختيار تيار ڪريو.
if currentTitle.namespace == 0 and not mhOptions.selfref
and redirTitle and redirTitle.namespace ~= 0
then
-- اسان mainspace صفحي تي آھيون، ۽ ھيٽ نوٽ ڪنھن اھڙي شيءِ سان شروع ٿئي ٿو
-- جيئن "Wikipedia:Foo redirects here"، تنھنڪري ان کي خودڪار طور
-- self-reference طور نشان لڳايو.
mhOptions.selfref = true
else
mhOptions.selfref = options.selfref
end
end
-- سڀ زمرا گڏ ڪريو
local category = ''
for k,v in pairs(categoryTable) do
category = category .. k
end
return mHatnote._hatnote(text, mhOptions) .. category
end
return p