Module:Sandbox/Nihiltres/Category manager/doc explained

This module implements a simple tool for managing category output in modules.

Usage

The module cannot be used from wikitext. It can be imported to another module using code similar to the following:

local catMan = require("Module:Category manager")

Category-list table format

Each function in the module takes a table as its first parameter, and that table is used as the list of categories. These tables are assumed to only be manipulated by this module's functions, but there is no protection against external manipulation; there's just basic type/value validation. Each item in a category-list table has its category name (without prefix) as its key; duplicate categories are therefore impossible. Values for each key can either be true (no sort key) or a string containing that sort key. A false value or any other type of value will cause errors. There are three functions for manipulating a category list table, and their individual documentation follows.

Functions

addCategory

Usage:

The addCategory function adds a category by setting the key from name in the catList table to either true or the provided sortKey value if present.

If an existing category is added a second time, its value will be overwritten with the new value; for this reason the module does not include a separate function for setting sort keys.

The catList parameter must be a table, the name parameter must be a non-empty, non-whitespace string, and sortKey must be either a string or nil.

removeCategory

Usage:

The removeCategory function removes a category by setting the key from name to nil in the catList table.

The catList parameter must be a table, and the name parameter must be a non-empty, non-whitespace string.

writeCategoryList

Usage:

The writeCategoryList function produces a string containing all the categories in the table formatted as wikitext. Optionally, a boolean nullify parameter may be provided, and if true, it will cause the function to output an empty string. This is useful as it makes it easy to disable category output through a parameter, probably in conjunction with .

The catList parameter must be a table formatted according to the category-list table format, and the nullify parameter must be either a boolean or nil.