মডিউল:বিষয়শ্রেণী পরিচালনাকারী/শেয়ারকৃত
অবয়ব
এই মডিউলের জন্য মডিউল:বিষয়শ্রেণী পরিচালনাকারী/শেয়ারকৃত/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে
-- এই মডিউলটিতে [[মডিউল:বিষয়শ্রেণী পরিচালনাকারী]] এবং এর উপ-মডিউলগুলোর জন্য শেয়ারকৃত ফাংশন রয়েছে।
-- এতে 'নামস্থান শনাক্তকরণ' (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