تبديل القائمة
Toggle preferences menu
تبديل القائمة الشخصية
غير مسجل للدخول
سيكون عنوان الآيبي الخاص بك مرئيًا للعامة إذا قمت بإجراء أي تعديلات.

وحدة:Resolve category redirect

من أرابيكا، الموسوعة العربية الحرة
المزيد من اللغات

هذه هي النسخة الحالية من هذه الصفحة، وقام بتعديلها عبد العزيز (نقاش | مساهمات) في 06:49، 6 أغسطس 2023 (أنشأ الصفحة ب'local p = {} --Returns the target of {{Category redirect}}, if it exists, else returns the original cat. function p.rtarget( cat ) if (mw.ustring.match( cat, '[{}!|]') ~= nil ) then return cat end local catcontent = mw.title.new( cat or '', 'Category' ):getContent() if string.match( catcontent or '', '{{ *[Cc]at' ) then local getRegex = require('Module:Template redirect regex').main local tregex = getRegex('Category redirect') for _, v in pairs (trege...'). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة.

(فرق) → نسخة أقدم | نسخة حالية (فرق) | نسخة أحدث ← (فرق)
local p = {}

--Returns the target of {{Category redirect}}, if it exists, else returns the original cat.
function p.rtarget( cat )
	if (mw.ustring.match( cat, '[{}!|]') ~= nil ) then
		return cat	
	end
	local catcontent = mw.title.new( cat or '', 'Category' ):getContent()
	if string.match( catcontent or '', '{{ *[Cc]at' ) then
		local getRegex = require('Module:Template redirect regex').main
		local tregex = getRegex('Category redirect')
		for _, v in pairs (tregex) do
			local rtarget = mw.ustring.match( catcontent, v..'%s*|%s*([^|{}}]+)' )
			if rtarget then
				rtarget = mw.ustring.gsub(rtarget, '^1%s*=%s*', '')
				rtarget = string.gsub(rtarget, '^[Cc]ategory:', '')
				return rtarget
			end
		end
	end
	return cat
end

function p.main( frame )
	local args = frame:getParent().args
	local cat  = args[1]
	
	if (cat == '') or (cat == nil) then
		return ''
	end
	return p.rtarget( cat )
end

return p