UESPWiki:NSInfo
NSInfo splits out the namespace and pseudo-namespace (pseudospace) functions from the older UespCustomCode extension, as well as adding a couple of new functions. The general concept is to provide a centralized data-repository for information about each namespace—in particular, game-related namespaces, or gamespaces as we often call them. Thus, {{NS_MAINPAGE:Skyrim}}
will always return the main page for Skyrim, and if we change where that is, we only have to update the information in one place. In addition, the mod allows a single page and its subpages to be treated like a namespace. This allows a smaller mod to benefit from all the functions this extension provides without having to create a whole new namespace for it.
- The definitions of the namespaces are provided by MediaWiki:Nsinfo-namespacelist, and can include both true namespaces and mods documented in subpages of the mod's main page (e.g., Beyond Skyrim: Cyrodiil). The page can be updated by all admins, along with anyone else who has interface editor permissions. Please be sparing in your edits and check them closely before saving this page, as each edit can cause large numbers of pages to be queued for updating (close to 100,000 on UESP).
- The functions are designed so that mods listed on the namespacelist page can be treated as if they were true namespaces, in particular within templates. Most often, these are called pseudospaces (shortened from pseudo-namespaces), but are also sometimes referred to as mod namespaces or sub-spaces.
- There are three possible ways that these magic words can identify the requested namespace:
- Unless otherwise noted, any of the magic words can be called with an argument ("arg" in the following examples) which specifies the desired namespace, overriding any other method of identifying namespaces. The argument can be:
- the basic name of the namespace or pseudospace ({{NS_BASE:}}),
- the short ID of the namespace or pseudospace ({{NS_ID:}}),
- for real namespaces only, the numeric ID ({{NAMESPACENUMBER}}),
- for real namespaces only, any of its shortcut names,
- a full page name. (Note: in the event of a conflict between a namespace identifier and a page in main space, such as Morrowind on this wiki, the namespace wins out. To force something to be identified as a page name, put a colon in front of it.)
- If the function is called with an empty argument, then the code checks to see whether the template variables
ns_base
orns_id
have been set (the variables must be all lowercase; ns_base takes precedence over ns_id). If so, these variables are used to determine the namespace. Despite their names, either variable can take any of the namespace identifiers mentioned above, including page names. - If neither of the above conditions is met, then the default behavior is to automatically identify the namespace (or mod) from the article title, and return values appropriate for that namespace. Within a given namespace, the longest possible matching name wins, thus
Beyond Skyrim:Cyrodiil/Example
will always be identified as Beyond Skyrim: Cyrodiil, not Beyond Skyrim. For talk page articles, the corresponding SUBJECTSPACE is always used, instead of the talk namespace.
- Unless otherwise noted, any of the magic words can be called with an argument ("arg" in the following examples) which specifies the desired namespace, overriding any other method of identifying namespaces. The argument can be:
- For backwards compatibility, variables with the same names as the functions are also supported (i.e.,
{{NS_BASE}}
instead of{{NS_BASE:}}
), but deprecated. Due to changes in MediaWiki's design, variables can become unreliable under certain circumstances from MW 1.39 onwards, and will generate warnings for a few versions before then. In short, don't use them. Any accidental or older uses of them will be tracked in Uses Deprecated Namespace Variable and should be converted by simply adding the missing colon.
Functions[edit]
Namespace Functions[edit]
All of the following functions must typed in upper case.
Function | Examples (using SI and BS5C) |
Description |
---|---|---|
{{ISGAMESPACE:}} {{ISGAMESPACE:arg}} {{GAMESPACE:}} {{GAMESPACE:arg}} |
1 1 |
Returns 1 if the namespace is considered to be a gamespace; otherwise blank. Both the "is" version and the bare version function identically; the "is" version is simply to allow for better coding grammar, implying a boolean answer.
|
{{ISMODSPACE:}} {{ISMODSPACE:arg}} {{MODSPACE:}} {{MODSPACE:arg}} |
1 |
Returns 1 if the namespace is considered to be a modspace; otherwise blank. Both the "is" version and the bare version function identically; the "is" version is simply to allow for better coding grammar, implying a boolean answer. |
{{MOD_NAME:}} {{MOD_NAME:arg}} |
Cyrodiil |
The name of the mod
|
{{MOD_PARENT:}} {{MOD_PARENT:arg}} |
Beyond Skyrim |
Indicates the immediate parent of the mod. This can be used in cases where a mod has sub-mods. |
{{NS_BASE:}} {{NS_BASE:arg}} |
Shivering Beyond Skyrim:Cyrodiil |
Returns the basic name of the subject namespace.
|
{{NS_CATEGORY:}} {{NS_CATEGORY:arg}} |
Shivering Beyond Skyrim-Cyrodiil |
The prefix used for this namespace on category pages. By default, this is equivalent to {{NS_BASE:}}, unless a more appropriate value is specified in the namespace's definition.
|
{{NS_FULL:}} {{NS_FULL:arg}} |
Shivering: Beyond Skyrim:Cyrodiil/ |
Returns the name of the namespace, including whatever punctuation is necessary before appending an article name.
|
{{NS_ID:}} {{NS_ID:arg}} |
SI BS5C |
Returns the ID used as a shorthand for this namespace. For most games, it is a two-letter ID. The value returned by {{NS_ID:}} is always all uppercase characters, but lowercase IDs will also be recognized as arguments to the namespace variables. (Note that this may not apply to other uses, such as in template parameter names.)
|
{{NS_MAINPAGE:}} {{NS_MAINPAGE:arg}} |
Shivering:Shivering Isles Beyond Skyrim:Cyrodiil |
The location of the namespace's main page. By default, this is equivalent to {{NS_FULL:}}{{NS_NAME:}}, unless a more appropriate value is specified in the namespace's definition. |
{{NS_NAME:}} {{NS_NAME:arg}} |
Shivering Isles Beyond Skyrim: Cyrodiil |
The descriptive name for the namespace; the name used for the main article describing the namespace. By default, this is equivalent to {{NS_BASE:}}, unless a more appropriate value is specified in the namespace's definition.
|
{{NS_PARENT:}} {{NS_PARENT:arg}} |
Oblivion Skyrim |
Returns the basic name of the parent namespace, i.e., the primary game, rather than the game expansion. This is normally the namespace which contains generic documentation, such as information about the game's races and attributes.
|
{{NS_TRAIL:}} {{NS_TRAIL:arg}} |
Shivering Isles Mod / Skyrim: Beyond Skyrim: Cyrodiil |
The prefix used for this namespace in breadcrumb trails, i.e., a full link to the namespace's main page, plus optionally links to any other relevant articles for the namespace. By default, this is equivalent to [[{{NS_MAINPAGE:}}|{{NS_NAME:}}]], unless a more appropriate value is specified in the namespace's definition. |
Other Functions[edit]
Function | Description |
---|---|
{{NS_CATLINK:arg ( |sortkey )}} | This is a simple synonym for [[Category:{{NS_CATEGORY:}}-arg]] or [[Category:{{NS_CATEGORY:}}-arg|sortkey]] meant for code brevity. |
Non-Function Data[edit]
In addition to the functions above, NSInfo supports parts of the mobile app, allowing administrators to maintain the header icons in the app for each namespace. By default, these icons will be stored in {{NS_ID:}}
-icon-HeaderIcon.svg.
API[edit]
Currently, the API is very simplistic and supports only the following syntax: <path to api.php>?action=query&list=nsinfo. This returns all entries found in MediaWiki:Nsinfo-namespacelist. For now, it won't return any other namespaces, though this should be a relatively easy feature to add in the future, if desired.
Fields returned by the API are as follows:
Field Name | Description |
---|---|
category | Same as {{NS_CATEGORY:}} |
full | Same as {{NS_FULL:}} |
icon | Wiki path to app header icon, not including File: prefix. |
iconurl | URL to app header icon. |
id | Same as {{NS_ID:}} |
isgamespace | Same as {{ISGAMESPACE:}} |
ismodspace | Same as {{ISMODSPACE:}} |
ispseudospace | Boolean value to indicate whether an entry is a real namespace or a pseudospace. Equivalent to checking if pagename is non-blank. |
mainpage | Same as {{NS_MAINPAGE:}} |
modname | Same as {{MOD_NAME:}} |
modparent | Same as {{MOD_PARENT:}} |
name | Same as {{NS_NAME:}} |
nsid | MediaWiki ID of the root namespace. Same as {{NAMESPACENUMBER:{{NS_FULL:}}DummyPageName}} |
pagename | For pseudospaces only, this is the root page name of the pseudospace without the namespace. Same as {{PAGENAME:{{NS_FULL:}}}} |
parent | Same as {{NS_PARENT:}} |
trail | Same as {{NS_TRAIL:}} |