Module:Category handler/shared: Difference between revisions

From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(make this output either true or false, and switch indentation to tabs)
m (6 revisions imported from loginwiki:Module:Category_handler/shared)
 
(14 intermediate revisions by 10 users not shown)
Line 2: Line 2:
-- and its submodules.
-- and its submodules.


local p = {}
local function matchesBlacklist(page, blacklist)

function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
local match = mw.ustring.match(page, pattern)
Line 12: Line 14:
end
end


function p.getParamMappings(useLoadData)
return {
local dataPage = 'Module:Namespace detect/data'
matchesBlacklist = matchesBlacklist
if useLoadData then
}
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end

function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
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

Latest revision as of 14:36, February 4, 2022

Documentation for this module may be created at Module:Category handler/shared/doc

-- 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 = 'Module:Namespace detect/data'
	if useLoadData then
		return mw.loadData(dataPage).mappings
	else
		return require(dataPage).mappings
	end
end

function p.getNamespaceParameters(titleObj, mappings)
	-- We don't use title.nsText for the namespace name because it adds
	-- underscores.
	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