This module generates the display text and categorisation structure for most of Wiktionary's categories by way of the {{auto cat}}
template.
This documentation only covers the generics of the category tree system.
Wiktionary's categories are organised into two hierarchies: topic categories and other (so-called "poscatboiler") categories.
Module:category tree/topic cat generates the category hierarchy used to classify entries by topic. Category:All topics is the root of this hierarchy.
An almost identical parallel hierarchy, where the category names are prefixed with "Thesaurus:", is generated by Module:category tree/ws topic cat. This is for use by thesaurus entries. Category:Thesaurus is the root of this hierarchy.
See Module:category tree/topic cat/data/documentation for more information about adding, modifying or removing categories from the topic category hierarchy.
Module:category tree/poscatboiler generates all other {{auto cat}}
-based categories that are not topic categories. Despite the name, it covers more than just part-of-speech categories.
See Module:category tree/poscatboiler/data/documentation for more information about adding, modifying or removing categories from this category hierarchy.
The module is based on the principle of two main kinds of category:
Basic categories 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 by language, 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 umbrella categories.
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.
Each submodule exports a function named new
which takes a single parameter: a table named info
that contains the various parameters that were passed to the template initially. This function returns a new Category
object representing those parameters, or nil
if the combination of parameters was not valid (i.e. no such category exists).
getBreadcrumbName()
Returns the name that is used for the category in the "breadcrumbs" at the top of the category page.
getDataModule()
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.
canBeEmpty()
Returns true
either if the category contains pages but might be empty or if the category only contains categories, otherwise returns false
.
getCategoryName()
Returns the name of the category that this category object represents.
getDescription()
Returns the description text that is shown at the top of the category page. If the category has no description, this returns nil
.
getParents()
Returns a table of the parent categories of this category. Each element in the table is a table itself, with two elements:
.name
.sort
If the category has no parents, this returns nil
.
If there are two or more parent categories, the first will be used to generate the breadcrumbs that are displayed at the top of the category page. For example, Category:English language is in numerous categories (All languages, West Germanic languages, Latin script languages, Braille script languages, and so on), but the first category, All languages, is the one displayed in the breadcrumbs: Fundamental » All languages » English language.
getChildren()
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
.
getUmbrella()
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.
getAppendix()
Returns an appendix link (such as Appendix:French verbs) if the page exists, else returns nil
.
getTOCTemplateName()
Returns the title for a template used as table of contents with the namespace prefix.
The table of contents is designed for categories with terms in a certain language, The TOC template should be a small, one-line template; a larger template will be used if available with the suffix /full. For example, if getTOCTemplateName() returns Template:en-categoryTOC, {{en-categoryTOC}}
will be used as the small table of contents template (for categories with more than 200 but less than 2500 entries) and {{en-categoryTOC/full}}
as the full table of contents template (for categories with more than 2500 entries).
If the function returns nil
, no such template will be used.