বিষয়বস্তুতে চলুন
🎉 বইপিডিয়ার ১ বছর পূর্তি! · আমাদের ফেসবুক পেজ অনুসরণ করুন.

মডিউল:বিষয়শ্রেণী পরিচালনাকারী/শেয়ারকৃত: সংশোধিত সংস্করণের মধ্যে পার্থক্য

বইপিডিয়া থেকে
"-- This module contains shared functions used by Module:Category handler -- and its submodules. local p = {} function p.matchesBlacklist(page, blacklist) for i, pattern in ipairs(blacklist) do local match = mw.ustring.match(page, pattern) if match then return true end end return false end function p.getParamMappings(useLoadData) local dataPage = 'মডিউল:নামস্থান শনাক্তকরণ/উপাত..." দিয়ে পাতা তৈরি
 
সম্পাদনা সারাংশ নেই
 
১ নং লাইন: ১ নং লাইন:
-- This module contains shared functions used by [[Module:Category handler]]
-- এই মডিউলটিতে [[মডিউল:বিষয়শ্রেণী পরিচালনাকারী]] এবং এর উপ-মডিউলগুলোর জন্য শেয়ারকৃত ফাংশন রয়েছে।
-- and its submodules.
-- এতে 'নামস্থান শনাক্তকরণ' (Namespace detect) এর উপাত্তগুলোও সরাসরি অন্তর্ভুক্ত করা হয়েছে।


local p = {}
local p = {}
local function getMappings()
    local cfg = {}
    cfg.demopage = 'page' -- আপনার প্রয়োজন অনুযায়ী পরিবর্তন করতে পারেন
    local function addKey(t, key, defaultKey)
        if key ~= defaultKey then
            t[#t + 1] = key
        end
    end
    local defaultKeys = {'main', 'talk', 'other', 'subjectns', 'demospace', 'demopage'}
    local argKeys = {}
    for i, defaultKey in ipairs(defaultKeys) do
        argKeys[defaultKey] = {defaultKey}
    end
    for defaultKey, t in pairs(argKeys) do
        local cfgValue = cfg[defaultKey]
        local cfgValueType = type(cfgValue)
        if cfgValueType == 'string' then
            addKey(t, cfgValue, defaultKey)
        elseif cfgValueType == 'table' then
            for i, key in ipairs(cfgValue) do
                addKey(t, key, defaultKey)
            end
        end
    end
    local mappings = {}
    local mainNsName = mw.site.subjectNamespaces[0].name
    mainNsName = mw.ustring.lower(mainNsName)
    mappings[mainNsName] = mw.clone(argKeys.main)
    mappings['talk'] = mw.clone(argKeys.talk)
   
    for nsid, ns in pairs(mw.site.subjectNamespaces) do
        if nsid ~= 0 then
            local nsname = mw.ustring.lower(ns.name)
            local canonicalName = mw.ustring.lower(ns.canonicalName)
            mappings[nsname] = {nsname}
            if canonicalName ~= nsname then
                table.insert(mappings[nsname], canonicalName)
            end
            for _, alias in ipairs(ns.aliases) do
                table.insert(mappings[nsname], mw.ustring.lower(alias))
            end
        end
    end
    return mappings
end


function p.matchesBlacklist(page, blacklist)
function p.matchesBlacklist(page, blacklist)
১৪ নং লাইন: ৬৪ নং লাইন:
end
end


-- প্যারামিটার ম্যাপিং রিটার্ন করার ফাংশন (এখন এটি সরাসরি ইন্টারনাল ফাংশন ব্যবহার করে)
function p.getParamMappings(useLoadData)
function p.getParamMappings(useLoadData)
local dataPage = 'মডিউল:নামস্থান শনাক্তকরণ/উপাত্ত'
    -- যেহেতু ডাটা এখন ইন-লাইন, তাই useLoadData এখানে আর মডিউল কল করবে না
if useLoadData then
    return getMappings()
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
end


-- নামস্থান প্যারামিটার পাওয়ার ফাংশন
function p.getNamespaceParameters(titleObj, mappings)
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
local mappingsKey
if titleObj.isTalkPage then
if titleObj.isTalkPage then

০১:৪৪, ১ জানুয়ারি ২০২৬ তারিখে সম্পাদিত সর্বশেষ সংস্করণ

এই মডিউলের জন্য মডিউল:বিষয়শ্রেণী পরিচালনাকারী/শেয়ারকৃত/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে

-- এই মডিউলটিতে [[মডিউল:বিষয়শ্রেণী পরিচালনাকারী]] এবং এর উপ-মডিউলগুলোর জন্য শেয়ারকৃত ফাংশন রয়েছে।
-- এতে 'নামস্থান শনাক্তকরণ' (Namespace detect) এর উপাত্তগুলোও সরাসরি অন্তর্ভুক্ত করা হয়েছে।

local p = {}

local function getMappings()
    local cfg = {}
    cfg.demopage = 'page' -- আপনার প্রয়োজন অনুযায়ী পরিবর্তন করতে পারেন

    local function addKey(t, key, defaultKey)
        if key ~= defaultKey then
            t[#t + 1] = key
        end
    end

    local defaultKeys = {'main', 'talk', 'other', 'subjectns', 'demospace', 'demopage'}
    local argKeys = {}
    for i, defaultKey in ipairs(defaultKeys) do
        argKeys[defaultKey] = {defaultKey}
    end

    for defaultKey, t in pairs(argKeys) do
        local cfgValue = cfg[defaultKey]
        local cfgValueType = type(cfgValue)
        if cfgValueType == 'string' then
            addKey(t, cfgValue, defaultKey)
        elseif cfgValueType == 'table' then
            for i, key in ipairs(cfgValue) do
                addKey(t, key, defaultKey)
            end
        end
    end

    local mappings = {}
    local mainNsName = mw.site.subjectNamespaces[0].name
    mainNsName = mw.ustring.lower(mainNsName)
    mappings[mainNsName] = mw.clone(argKeys.main)
    mappings['talk'] = mw.clone(argKeys.talk)
    
    for nsid, ns in pairs(mw.site.subjectNamespaces) do
        if nsid ~= 0 then 
            local nsname = mw.ustring.lower(ns.name)
            local canonicalName = mw.ustring.lower(ns.canonicalName)
            mappings[nsname] = {nsname}
            if canonicalName ~= nsname then
                table.insert(mappings[nsname], canonicalName)
            end
            for _, alias in ipairs(ns.aliases) do
                table.insert(mappings[nsname], mw.ustring.lower(alias))
            end
        end
    end
    return mappings
end

function p.matchesBlacklist(page, blacklist)
	for i, pattern in ipairs(blacklist) do
		local match = mw.ustring.match(page, pattern)
		if match then
			return true
		end
	end
	return false
end

-- প্যারামিটার ম্যাপিং রিটার্ন করার ফাংশন (এখন এটি সরাসরি ইন্টারনাল ফাংশন ব্যবহার করে)
function p.getParamMappings(useLoadData)
    -- যেহেতু ডাটা এখন ইন-লাইন, তাই useLoadData এখানে আর মডিউল কল করবে না
    return getMappings()
end

-- নামস্থান প্যারামিটার পাওয়ার ফাংশন
function p.getNamespaceParameters(titleObj, mappings)
	local mappingsKey
	if titleObj.isTalkPage then
		mappingsKey = 'talk'
	else
		mappingsKey = mw.site.namespaces[titleObj.namespace].name
	end
	mappingsKey = mw.ustring.lower(mappingsKey)
	return mappings[mappingsKey] or {}
end

return p