Module:category tree/documentation

Definition from Wiktionary, the free dictionary
Jump to: navigation, search
Edit-copy green.svg Documentation for Module:category tree. [edit]
This page contains usage information, categories, interwiki links and other content describing the module.

This module is used for generating category boilerplate templates. It is not meant to be used directly, but is to be used by a more specific template such as {{poscatboiler}}.


The module takes the following parameters:

The name of the template that uses the module. This name is used as the name of the submodule that is queried for information.
The code that specifies what 'owns' the category's contents. This is usually a language code such as en, but it can also be a script code like Latn or the code of a language family.
A name for the thing that is being categorised. The submodule determines how the label is interpreted, so it depends on the template being used. Many templates use it to look up data in a table, while others may interpret it as a language code of some kind.
The script code of the items to be categorised. This is usually empty, but many categories such as those used by Mandarin Chinese can split into subcategories based on script.

General workings[edit]

Every template that uses this module should have a submodule of this module with the same name as the template. This submodule should export a function named new which takes a single parameter: a table containing the various parameters that were passed to the template initially. This function should return a new Category object representing those parameters, or nil if the combination of parameters was not valid (i.e. no such category exists).

The module is based on the principle of two main kinds of category:

Basic categories are those for which the code= parameter is not empty. These therefore belong to a specific language (or similar) and are the "regular" categories. Examples are: Category:English nouns, Category:French templates, Category:nl:Linguistics, Category:English terms derived from Japanese, Category:Latin script characters.

Umbrella categories do not have a code, but contain all basic categories of their label, one for each code. These are the "by language" type categories. Examples are: Category:Nouns by language, Category:Templates by language, Category:Linguistics, Category:Terms derived from Japanese, Category:Characters by script.

Some templates also distinguish a third type of category, the fundamental category. This category is used as the parent category for all umbrella categories.

Category objects[edit]

Category objects are returned by each submodule's new function. They represent a single category in the tree. A category object has a variety of methods which may be called on it to ask for information about the category.



Returns the name that is used for the category in the "breadcrumbs" at the top of the category page.



Returns the name of the module which contains the data for this category. This is used to create an "edit" link on the category, which allows users to find and edit the information more easily.



Returns the name of the category that this category object represents.



Returns the description text that is shown at the top of the category page. If the category has no description, this returns nil.



Returns a table of the parent categories of this category. Each element in the table is a table itself, with two elements:

One of two possibilities: An category object representing the parent category, or a string that directly specifies the name of the parent category.
The sorting key that should be used when categorizing the current category in the parent.

If the category has no parents, this returns nil.



Returns a table of the child categories of this category. Each element in the table is a category object representing the child category. If the category has no children, this returns nil.



Returns a category object for the current category's corresponding umbrella category. If the current category is already an umbrella category, this returns nil. It also returns nil if the category has no umbrella category.

Data modules[edit]

Some category templates, like {{poscatboiler}}, use separate data modules to list information for a large number of categories together. The following values are generally used in these modules:

A plain English description for the label.
The "fundamental" category name, which is the parent category that all umbrella categories are collected in.
The sort key used to sort the umbrella category within the fundamental category. This generally defaults to the display name, but can be overridden with something like ** for root categories to make them easier to find.
A table listing one or more parent labels of this label.
  • An item in the table can be either a single string, or a table containing two elements called name and sort. In the latter case, name value specifies the parent label name, while the sort value specifies the sort key to use to sort it in that category.
  • If a parent label begins with Category: it is interpreted as a raw category name, rather than as a label name. It can still have its own sort key as usual.


circumfixcat derivcatboiler derivcatboiler/documentation
documentation famcatboiler famcatboiler/documentation
infixcat interfixcat langcatboiler
pbcatboiler pbcatboiler/documentation poscatboiler
poscatboiler/documentation poscatboiler/entry maintenance poscatboiler/etymologies/documentation
poscatboiler/figures of speech poscatboiler/lemmas poscatboiler/miscellaneous
poscatboiler/names poscatboiler/names/documentation poscatboiler/non-lemma forms
poscatboiler/phrases poscatboiler/phrases/documentation poscatboiler/rhymes
poscatboiler/rhymes/documentation poscatboiler/shortenings poscatboiler/shortenings/documentation
poscatboiler/symbols poscatboiler/symbols/documentation poscatboiler/templates
poscatboiler/templates/documentation poscatboiler/terms by etymology poscatboiler/terms by lexical property
poscatboiler/terms by lexical property/documentation poscatboiler/terms by semantic function poscatboiler/terms by usage
prefixcat scriptcatboiler scriptcatboiler/documentation
suffixcat templates templates/documentation
topic cat topic cat/Body topic cat/Body/documentation
topic cat/Buildings and structures topic cat/Communication topic cat/Culture
topic cat/Culture/documentation topic cat/Earth topic cat/Earth/documentation
topic cat/Food and drink topic cat/History topic cat/Human
topic cat/Lifeforms topic cat/Lifeforms/documentation topic cat/Mathematics
topic cat/Mathematics/documentation topic cat/Miscellaneous topic cat/Names
topic cat/Nature topic cat/Nature/documentation topic cat/Numbers
topic cat/People topic cat/Philosophy topic cat/Place names
topic cat/Place names/documentation topic cat/Sciences topic cat/Sciences/documentation
topic cat/Sex topic cat/Social acts topic cat/Society
topic cat/Society/documentation topic cat/Sports topic cat/Sports/documentation
topic cat/Technology topic cat/Technology/documentation topic cat/Time
topic cat/Transport topic cat/documentation translitcatboiler