From LinuxMCE
Jump to: navigation, search
Home | Editing help | Table of contents (2)

Introduction to namespaces

Namespaces: the containers

Articles in the Wiki are placed in locations called "namespaces". Namespaces are the Wiki architecture components that hold all articles. The final location of an article is the one that has been specified through its title prefix following the construct Namespace:Title.
If an article is titled without the use of the optional location prefix (:Title), it is placed in the main namespace, which is the default location. This is so because the main namespace is the null character.

Why namespaces?

Namespaces are administrative boundaries used to separate content from policy and discussion.
They isolate pages based on their intended use:

  • subject specific
  • public viewing
  • private information intended for the editing community.

Use namespaces to separate articles just as you would use folders to keep documents.

Working with namespaces

List of built-in namespaces

The Wiki ships with 18 built-in namespaces.

Index Name Purpose Comments
0 Main "Real" content; articles Has no prefix
1 Talk Talk pages of "Real" content
2 User User pages
3 User talk Talk pages for User Pages
4 Project Information about the wiki Prefix is the same as $wgSitename
5 Project talk
6 File Media description pages
7 File talk
8 MediaWiki Site interface customisation Protected
9 MediaWiki talk
10 Template Template pages
11 Template talk
12 Help Help pages
13 Help talk
14 Category Category description pages
15 Category talk

2 other namespaces have negative indexes and have special purposes. You cannot create or delete pages in these namespaces, and there are no corresponding discussion namespaces. Index Name Purpose -1 Special Holds special pages -2 Media Alias for direct links to media files

Index Name Purpose
-1 Special Holds special pages
-2 Media Alias for direct links to media files

The following 8 namespaces all have associated discussion namespaces.

Index 	Name 	        Purpose 	                Comments
0 	Main 	        "Real" content; articles 	Has no prefix
2 	User 	        User pages, personal notes
4 	Project         Information about the wiki 	Prefix is the same as $wgSitename
6 	Image           Media description pages         descriptions of uploaded files or media files
8 	MediaWiki 	Site interface customisation 	Protected
10 	Template 	Template pages
12 	Help 	        Help pages
14 	Category 	Category description pages

  • the main namespace: this is the default namespace for all pages that have no prefix in their titles.
  • the 15 special meaning prefixes:
    • project namespaces: 2 namespaces that get their names from the name of the wiki project.
      • edit this sentence , and so differ in name from one wiki to the next; on the Wikipedia, they are called Wikipedia: and Wikipedia talk:. On each wiki, these project namespaces (whatever they may happen to be for that wiki), can be referred to by the pseudonyms "Project:" and "Project Talk:", respectively.)
  • 2 pseudo-namespaces

How to view the contents of a namespace

The special page "Special:Allpages" contains all the articles created in the wiki by its editors. It lists the contents of the "Main" namespace.
The "Namespace:" drop down menu on that page enables you to select a different namespace and click the "Go" button to view the articles it contains.

These work:  [[Special:Allpages]]  [[Special:Specialpages]]    [[:help]] 
These don't: [[Special:Help]][[Help:]]
[Help:] [[Special:Help:]] [[innamespace:Help]]

Where to place the article?

Before starting a new article, a decision has to be made about its intended use and audience. Each new article should be placed in the namespace that has related articles that are used for the same purpose.

Placing an article in a namespace

The final location of an article is determined through its title. The title of an article is a special structure that provides a facility to specify the destination of the article.
The construct is: Location:Title.
The location prefix specifies where the article should be located in reference to all other articles on the wiki.

Moving articles between namespaces

To move an article, all that is needed is a change of prefix (location).

How to specify the namespace(s) to search

The namespaces searched are the ones specified in the "search" section of the Preferences.

Namespace variables

The namespace is returned by {{NAMESPACE}} . On this page, it returns "Help".

{{FULLPAGENAME}} returns both the namespace and pagename as follows: "Help:Namespace"

The following does not work for this implementation but is included here for reference purposes.
List and numbers of the namespaces:

Click here to view a detailed list of the namespaces in this wiki.

Namespace administration

The remainder of this page contains administrative notes.

How to create a new namespace

This is an administrative function used to add custom namespaces to the wiki to further separate content and allow more logical organization.

A custom namespace can be used to hold content that should not be shown on the search results page, for example pages that are used only for transclusion.

Edit the configuration file

  1. Open the /var/www/html/mediawiki/LocalSettings.php file
  2. Add a line to create the new namespace:
All namespaces require a numerical index
Custom namespaces are indexed starting with 100
  • Even indexes are content namespaces:
  • Odd indexes are discussion ('talk:') namespaces
$wgExtraNamespaces[100] = "Foo";
$wgExtraNamespaces[101] = "Foo_talk";

Create and protect the namespace

# create namespace
$wgExtraNamespaces[NS_FOO] = "Foo";
$wgExtraNamespaces[NS_FOO_TALK] = "Foo_talk";
# protect namespace $wgNamespaceProtection[NS_FOO] = Array("editfoo"); #permission "editfoo" required to
edit the foo namespace $wgNamespacesWithSubpages[NS_FOO] = true; #subpages enabled for the foo namespace $wgGroupPermissions['*']['editfoo'] = false; #permission "editfoo" denied to all $wgGroupPermissions['sysop']['editfoo'] = true; #permission "editfoo" granted to
users in the "sysop" group

Specify that it is a content namespace

If the namespace is created for additional content (articles), indicate it in the configuration:

$wgContentNamespaces[] = 100;

Give it an alias if necessary

It is possible to define alias names for any namespace using the $wgNamespaceAliases configuration directive.

But take note:

   * Namespace prefixes should not be confused with prefixes for interwiki linking.
   * If a page title contains a colon, but the initial part of the title is not one of the pre-defined namespaces, that page is considered to be in the main namespace.

Resolving namespace conflicts

When a page is created in a namespace that doesn't exist, e.g. "Bar:Some page", it is treated as being in the main namespace. This will conflict in the future with a new namespace of the same name. The articles will have to be moved.
Within the maintenance directory, there is a maintenance script which performs the above operation more effectively for a large number of pages; namespaceDupes.php. Alternatively, the following query can be used:

page_title = REPLACE(page_title, 'Bar:', ),
page_namespace = 100
WHERE `page_title` LIKE 'Bar:%' AND page_namespace=0

Removing custom namespaces

The problem addressed above also occurs when a custom namespace definition is removed; the wiki is no longer aware of the numerical index for the namespace, and attempts to search the main namespace for the desired pages, leading to inaccessible content. This is a rare occurrence, since most sites will not need namespaces removed, but it is a problem.

Read more

This article section has external references that will be added soon.