Modul:category tree/doc
This module is used for generating category boilerplate templates. It is not meant to be used directly. Rather, each template will have its own submodule, which handles the specifics of that template.
This documentation only covers the generics of the category tree system. If you are looking for documentation on a specific template, or on how to add or modify category information, see the documentation of that template.
Parameters
szerkesztésThe category tree module is invoked as:
{{#invoke:category tree|show|template=name of the template|...other parameters...}}
Every template that uses this module should have a submodule of this module with the name given in the |template=
parameter. (For example, {{poscatboiler}}
uses Module:category tree/poscatboiler.) This submodule should export 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 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).
Most templates accept and pass this common set of parameters. The parameters passed to the module by a template are defined by that template individually, so not every template will necessarily use all of these. {{family cat}}
for example only passes the |code=
parameter to the module.
|code=
- 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 likeLatn
or the code of a language family, depending on how the specific template treats it. |label=
- 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.
|sc=
- 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
szerkesztésThe 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 umbrella categories.
Category objects
szerkesztésSablon:documentation outdated
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.
getBreadcrumbName
szerkesztésgetBreadcrumbName()
Returns the name that is used for the category in the "breadcrumbs" at the top of the category page.
getDataModule
szerkesztésgetDataModule()
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
szerkesztéscanBeEmpty()
Returns true
either if the category contains pages but might be empty or if the category only contains categories, otherwise returns false
.
getCategoryName
szerkesztésgetCategoryName()
Returns the name of the category that this category object represents.
getDescription
szerkesztésgetDescription()
Returns the description text that is shown at the top of the category page. If the category has no description, this returns nil
.
getParents
szerkesztésgetParents()
Returns a table of the parent categories of this category. Each element in the table is a table itself, with two elements:
.name
- One of two possibilities: An category object representing the parent category, or a string that directly specifies the name of the parent category.
.sort
- The sorting key that should be used when categorizing the current category in the parent.
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: Sablon:serif.
getChildren
szerkesztésgetChildren()
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
szerkesztésgetUmbrella()
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
szerkesztésgetAppendix()
Returns an appendix link (such as Appendix:French verbs) if the page exists, else returns nil
.
Table of contents
szerkesztésIn categories that contain terms in a given language, the module looks for a table of contents for the language in the titles Template:language code-categoryTOC
(for categories with more than 200 but less than 2500 entries) and Template:language code-categoryTOC/full
(for categories with more than 2500 entries). For English, these templates are {{en-categoryTOC}}
and {{en-categoryTOC/full}}
.