Permanently protected module
From Wikipedia, the free encyclopedia


-- This module implements [[Template:Ns has subpages]].

-- While the template is fairly simple, this information is made available to

-- Lua directly, so using a module means that we don't have to update the

-- template as new namespaces are added.



local p = {}



function p._main(ns, frame)

	-- Get the current namespace if we were not passed one.

	if not ns then

		ns = mw.title.getCurrentTitle().namespace

	end



	-- Look up the namespace table from mw.site.namespaces. This should work

	-- for a majority of cases.

	local nsTable = mw.site.namespacesns



	-- Try using string matching to get the namespace from page names.

	-- Do a quick and dirty bad title check to try and make sure we do the same

	-- thing as {{NAMESPACE}} in most cases.

	if not nsTable and type(ns) == 'string' and not ns:find('[<>|%[%]{}]') then

		local nsStripped = ns:gsub('^[_%s]*:', '')

		nsStripped = nsStripped:gsub(':.*$', '')

		nsTable = mw.site.namespacesnsStripped

	end



	-- If we still have no match then try the {{NAMESPACE}} parser function,

	-- which should catch the remainder of cases. Don't use a mw.title object,

	-- as this would increment the expensive function count for each new page

	-- tested.

	if not nsTable then

		frame = frame or mw.getCurrentFrame()

		local nsProcessed = frame:callParserFunction('NAMESPACE', ns)

		nsTable = nsProcessed and mw.site.namespacesnsProcessed

	end

	

	return nsTable and nsTable.hasSubpages

end



function p.main(frame)

	local ns = frame:getParent().args1

	if ns then

		ns = ns:match('^%s*(.-)%s*$') -- trim whitespace

		ns = tonumber(ns) or ns

	end

	local hasSubpages = p._main(ns, frame)

	return hasSubpages and 'yes' or ''

end



return p
Permanently protected module
From Wikipedia, the free encyclopedia


-- This module implements [[Template:Ns has subpages]].

-- While the template is fairly simple, this information is made available to

-- Lua directly, so using a module means that we don't have to update the

-- template as new namespaces are added.



local p = {}



function p._main(ns, frame)

	-- Get the current namespace if we were not passed one.

	if not ns then

		ns = mw.title.getCurrentTitle().namespace

	end



	-- Look up the namespace table from mw.site.namespaces. This should work

	-- for a majority of cases.

	local nsTable = mw.site.namespacesns



	-- Try using string matching to get the namespace from page names.

	-- Do a quick and dirty bad title check to try and make sure we do the same

	-- thing as {{NAMESPACE}} in most cases.

	if not nsTable and type(ns) == 'string' and not ns:find('[<>|%[%]{}]') then

		local nsStripped = ns:gsub('^[_%s]*:', '')

		nsStripped = nsStripped:gsub(':.*$', '')

		nsTable = mw.site.namespacesnsStripped

	end



	-- If we still have no match then try the {{NAMESPACE}} parser function,

	-- which should catch the remainder of cases. Don't use a mw.title object,

	-- as this would increment the expensive function count for each new page

	-- tested.

	if not nsTable then

		frame = frame or mw.getCurrentFrame()

		local nsProcessed = frame:callParserFunction('NAMESPACE', ns)

		nsTable = nsProcessed and mw.site.namespacesnsProcessed

	end

	

	return nsTable and nsTable.hasSubpages

end



function p.main(frame)

	local ns = frame:getParent().args1

	if ns then

		ns = ns:match('^%s*(.-)%s*$') -- trim whitespace

		ns = tonumber(ns) or ns

	end

	local hasSubpages = p._main(ns, frame)

	return hasSubpages and 'yes' or ''

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook