Manual:Namespace
A namespace is a collection of pages all having a similar purpose. Namespaces can be thought of as partitioning the information within a wiki into different types, keeping "real" content (pages about the main subject matter of the wiki) separate from user profiles, help pages, etc.
A namespace prefix is the first part of a page title (if present) indicating which namespace it belongs to. It is separated from the rest of the title by a colon (:
). The so-called "main namespace" does not have a prefix.
Every namespace has a number or index which the MediaWiki software uses to refer to the namespace instead of its name.
Technical overview
Every page on a wiki has a unique title which may begin with a namespace prefix or not. Pages in different namespaces can otherwise share the same name (i.e., not counting their prefixes).
For example, here at MediaWiki.org:
Title | Namespace prefix | Namespace number | Page description |
---|---|---|---|
API
|
0 | a page in the "main namespace" | |
Template:API
|
Template | 10 | a template that can be transcluded into other pages |
Manual:API
|
Manual | 100 | a page in our MediaWiki manual (which, in this case, redirects to a different page) |
Because the "main namespace" does not have a prefix, any page title having no prefix—or any page whose apparent prefix doesn't match any recognized namespace on the wiki (nor any interwiki/interlanguage prefix )—is interpreted as a page in the main namespace.
Note that pages in the main namespace cannot have names starting with any existing namespace prefix followed by a colon, because such pages would be rendered inaccessible by the presence of that namespace. (If this has happened as the result of the creation of a new namespace, the namespaceDupes.php maintenance script can be used to fix the problem.)
Pages can be moved between namespaces simply by changing the prefix part of their title.
Namespace prefixes can be translated, and aliases (helpful in shortcuts) can be configured for each (see $wgNamespaceAliases
).
All namespaces also have a "canonical" prefix, which works on all wikis regardless of configuration.
Aliases and canonical names can be used in links, when performing a search, and in the page title with the help of the {{DISPLAYTITLE}} magic word.
Each namespace has a corresponding namespace index. Within the database, the title is split into namespace index and text title, and this is used for storage in the page.page_namespace
and page.page_title
columns, among others.
Subject and talk namespaces
- See Help:Talk pages for instructions on how to use talk pages.
Most namespaces have an associated discussion namespace (or "talk" namespace).
All discussion namespaces have odd-integer indices, and the discussion namespace index for a specific namespace with index n is n+1.
The namespaces with even-integer indices are subject namespaces (note that this is a distinct concept from content namespaces).
The subject-talk duality can be explored using the {{SUBJECTPAGENAME}}
and {{TALKPAGENAME}}
magic words.
The <body>
tag of pages in talk namespaces has the ns-talk
CSS class, which might be useful for styling.
Built-in namespaces
MediaWiki ships with 18 built-in namespaces:
- 16 "real" namespaces, corresponding to actual pages, numbered 0 to 15, and grouped in subject/talk pairs
- 2 "virtual" namespaces (one for dynamically generated special pages, and one serving as an alias for direct file links), numbered -1 and -2, respectively. Since these namespaces don't correspond to pages stored in the database, one cannot create or delete pages in these namespaces, and there are no corresponding discussion namespaces.
The full list is presented in the table below.
ID | Name | Purpose | Talk | |
---|---|---|---|---|
0 | (Main) | "Real" content articles[1] | Talk | 1 |
2 | User | User pages[2] | User talk | 3 |
4 | Project | Information about the wiki[3] | Project talk | 5 |
6 | File | Media description pages | File talk | 7 |
8 | MediaWiki | Site interface customization[4] | MediaWiki talk | 9 |
10 | Template | Template pages | Template talk | 11 |
12 | Help | Help pages | Help talk | 13 |
14 | Category | Category description pages | Category talk | 15 |
-1 | Special | Holds special pages | N/A | |
-2 | Media | Alias for direct links to media files |
Each namespace also has a constant derived from its name, with all letters in uppercase, spaces replaced by underscores, and prefixed by NS_
.
For example, the constant for the "User talk" namespace is NS_USER_TALK
.
A complete list can be found in Manual:Namespace constants .
- ↑ The subject namespace has no prefix.
- ↑ Editing a User talk page generates a notification for the user.
- ↑ Defined by
$wgMetaNamespace
, which unless manually set otherwise, defaults to$wgSitename
. - ↑ Only editable by users with the 'editinterface' permission.
Custom namespaces
Extensions and site administrators can define additional namespaces to group additional classes of pages together. For a thorough overview, see Manual:Using custom namespaces .
Functionality
Some namespaces, like Project and Help, only exist for convenience and do not have any extra functionality compared to the Main namespace.
Template namespace pages can be transcluded without namespace prefix.
User namespace pages are associated with user accounts or IP addresses. Changes to user talk pages generate an automatic message notification.
Pages in the "MediaWiki" namespace are used to override default messages in language file and can only be edited by administrators or other users with the editinterface permission.
File and Category pages have special functionality, as described in Help:Managing files and Help:Categories . Files can be moved by users with the "movefile" right. Category pages can be moved by users with the "move-categorypages" right.
All pages in discussion namespaces have a "post a comment" feature.
See also
- Help:Namespaces – user-oriented information.
- Extension default namespaces
Site administration
- Manual:Configuration settings#Namespaces
- Manual:Namespace constants
- Manual:Using custom namespaces
- Manual:Help namespace
Extensions
- Category:Namespace extensions
- Extension:NamespaceManager – for management of namespaces.
- Extension:BlueSpiceNamespaceManager – lets you create custom namespaces.
- Extension:SpecialNamespaces – a modified version of the Extension:Interwiki which changes it to provide a namespace manager as a special page.
- Extension:Lockdown – to control access to namespaces.
- Extension:SkinPerNamespace – to use a different skin in a namespace.
For extension developers
- Manual:Using custom namespaces
- List of custom namespaces registered by extensions . If you define a constant for a custom namespace, list it here, too.
- Classes
- Manual:MWNamespace.php , containing the MWNamespace class (removed in 1.39)
- Hooks
- Manual:Hooks/CanonicalNamespaces – add custom namespaces or alter the defaults.
- Manual:Hooks/NamespaceIsMovable – determine if it is possible to move pages in a namespace.
- Manual:Hooks/SearchableNamespaces – modify which namespaces are searchable.
- Manual:Hooks/LanguageGetNamespaces – provide custom ordering for namespaces or remove namespaces.
- Manual:Hooks/PrefixSearchExtractNamespace – called if core was not able to extract a namespace from the search string so that extensions can attempt it.