Jump to content

Module:Category handler/doc

From Simple English Wikipedia, the free encyclopedia
Revision as of 12:10, 3 September 2013 by Mr. Stradivarius (talk | changes) (fix the example code so it won't throw errors)

This is the documentation page for Module:Category handler


This module implements the {{category handler}} template. The category handler template helps other templates to automate both categorization and category suppression. For information about using the category handler template in other templates, please see the template documentation. Keep reading for information about using the category handler module in other Lua modules, or for information on exporting this module to other wikis.

Use from other Lua modules

When not to use this module

For cases where a module only needs to categorise in one of the namespaces main (articles), file (images) or category, then using this module is overkill. Instead, you can simply get a title object using mw.title.getCurrentTitle and check the nsText field. For example:

local title = mw.title.getCurrentTitle
if title.nsText == 'File' then
    -- do something
end

However, if your module needs to categorize in any other namespace, then we recommend you use module, since it provides proper category suppression and makes it easy to select how to categorize in the different namespaces.

Namespaces

This module detects and groups all the different namespaces used on Wikipedia into several types. These types are used as parameter names in this module.

main = Main/article space, as in normal Wikipedia articles.
talk = Any talk space, such as page names that start with "Talk:", "User talk:", "File talk:" and so on.
user, wikipedia, file ... = The other namespaces except the talk pages. Namespace aliases are also accepted. See the table below for the full list.
other = Any namespaces that were not specified as a parameter to the template. See examples below.
List of possible namespace parameters

(excluding talk and other)

Namespace Aliases
main
user
wikipedia project, wp
file image
mediawiki
template
help
category
mos
timedtext
module

Basic usage

This module takes two or more parameters. Here's an example using a hello world program:

p = {}
local categoryHandler = require( 'Module:Category handler' ).main
 
function p.main( frame )
    local result = 'Hello world!'
    local category = categoryHandler{
        '[[Category:Somecat]]',
        nocat = frame.args.nocat -- So "nocat=true/false" works
    }
    category = category or '' -- Check that we don't have a nil value for the category variable.
    return result .. category
end
 
return p

The above example uses the default settings for the category handler module. That means the example module will categorize on pages in the following namespaces:

main, file, help, category, portal and book

But it will not categorize in any other namespaces, e.g.:

talk, user, wikipedia, mediawiki, template ...

And it will not categorize on blacklisted pages. (See section blacklist below.)

The reason the category handler module does not categorize in some of the namespaces is that in those namespaces most modules and templates are just demonstrated or listed, not used. Thus most modules and templates should not categorize in those namespaces.

Any module or template that is meant for one or more of the namespaces where this module categorizes can use the basic syntax as shown above.

Exporting to other wikis

This module can be exported to other wikis by changing the configuration values in the cfg table. All the variable values are configurable, so after the configuration values have been set there should be no need to alter the main module code. Details of each configuration value are included in the module code comments. In addition, this module requires Module:Namespace detect to be available on the local wiki.