MediaWiki/ Namensräume

Aus Wikibooks
Wechseln zu: Navigation, Suche

Namensraum ist ein Wiki-Konzept zur Gruppierung von Seiten. So unterscheidet die Wikipedia etwa Benutzer-, Diskussions- und interne Wikipediaseiten, wie auch die Seiten in den anderssprachigen Wikipedias.

Der Namensraum ist ein Präfix, das mit einem Doppelpunkt vor dem eigentlichen Seitentitel steht. Beispiel: Benutzer:BMW ist eine Seite aus dem Namensraum „Benutzer“ und folglich ist „BMW“ der Name des betreffenden Benutzers. Davon unberührt kann ein Enzyklopädie-Eintrag BMW lauten, was zu einer Automarke führt. So werden Konflikte von Benutzer- und Artikelnamen verhindert.

Die Nummer eines Namensraums kann bei CSS-Dateien genutzt werden.



Standardnamensräume
Nr. Präfix Bedeutung
0 <kein:> Der normale Wikibereich, auch Artikelnamensraum genannt.
1 Diskussion: Eine Diskussionsseite zu einem bereits existierenden Artikel
2 Benutzer: Eine persönliche Seite (Benutzer-Homepage im Projekt)
3 Benutzer_Diskussion: Diskussionsseiten der Benutzer
4 Project: Der Metabereich des Wikis (Interne Seiten, Konventionen). Name wird bei der Wikiinstallation angegeben, dieser Namensraum ist aber auch als "Project" erreichbar[1]
5 Project_Diskussion: Diskussionsseiten zum Project-Namensraum
6 Bild: Informationen zu hochgeladenen Bilder/sonstigen Dateien, siehe Bilder
7 Bild_Diskussion: Diskussionsseiten zu Bildern
8 MediaWiki: Enthält die Texte der MediaWiki-Software, siehe MediaWiki-Namensraum
9 MediaWiki_Diskussion: Diskussionsseiten zu MediaWiki-Softwaretexten
10 Vorlage: Enthält Textbausteine (siehe Vorlagen)
11 Vorlage_Diskussion: Diskussionsseiten zu Vorlagen
12 Hilfe: Technische Hilfe zu MediaWiki, der Wiki-Software
13 Hilfe_Diskussion: Diskussionsseiten zu Hilfeseiten
(-1) Spezial: Automatisch generierte Spezialseiten

Seiten in Namensräumen lassen sich wie jede normale Seite anlegen, verlinken, bearbeiten etc.

Unterseiten[Bearbeiten]

Im Benutzer-, Wikipedia- und Portal-Namensraum ist es möglich, mit einem Schrägstrich im Titel Unterseiten anzulegen, zum Beispiel [[Benutzer:BMW/Getriebe]]. Die Mediawiki-Software erzeugt auf der Seite automatisch einen Link zurück zum übergeordneten Artikel, also in diesem Fall [[Benutzer:BMW]]. Um herauszufinden, welche Unterseiten eine Seite hat, kann man auf der Spezialseite Special:Allpages bei "Seiten anzeigen ab" die übergeordnete Seite eintragen und den "Namensraum" wählen.


Eigene Namensräume[Bearbeiten]

Zusätzlich zu den Standard-(built-in)Namensräumen kann man Zusätzliche hinzufügen.

Einen neuen Namensraum erstellen[Bearbeiten]

Um das zu tun, füge man eine Zeile zur LocalSettings.php hinzu, z. B.

$wgExtraNamespaces[100] = "Foo";

So erhält man einen Namensraum namens "Foo".
Man beachte die Hundert. Alle Namensräume brauchen eine Nummer; bei neuen, nicht eingebauten Namensräumen sollten diese bei 100 beginnen, um Konflikte mit bereits bestehenden zu vermeiden. Es ist üblich, zu jedem Namensraum einen entsprechenden Diskussionnamensraum zu definieren. Gerade Nummern stehen daher für Inhaltsnamensräume, ungerade Zahlen für die entsprechenden Diskussionsnamensräume. Entsprechend lautet die vollständige Deklaration:

$wgExtraNamespaces[100] = "Foo";
$wgExtraNamespaces[101] = "Foo_Diskussion";

Content namespaces[Bearbeiten]

When building the site statistics page (see Special:Statistics), MediaWiki uses values stored in the database to calculate certain totals. One particular total is the "number of articles" or "number of content pages" figure.

For a page to be considered an article, or proper content, it must:

  • Be in the main namespace, or a defined content namespace
  • Not be a redirect page
  • Contain at least one internal link

When creating custom namespaces to hold additional content, it is a good idea to indicate this in the configuration. This is done via the $wgContentNamespaces configuration directive.

To extend the example above, one might add the following to LocalSettings.php:

$wgContentNamespaces[] = 100;

MediaWiki will now consider pages in the "Foo" namespace to be articles, if they meet the remaining criteria, and will include them when updating the site statistics counters.

When adjusting the value of $wgContentNamespaces, it is a good idea to run the maintenance/updateArticleCount.php script to update the internal statistics cache.

Dealing with existing pages[Bearbeiten]

When storing page records, MediaWiki uses a namespace's numerical index, along with the remaining title text. Thus, 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 can cause problems if adding a custom namespace definition for "Bar" at a later date, as MediaWiki will look for a page indexed via the proper namespace, but won't be able to find it, thus making the content inaccessible.

To correct this problem, there are two main approaches.

Move conflicting pages[Bearbeiten]

If the number of pages affected is small (e.g. "Bar" held five pages created before the namespace was defined in the site configuration), then the following approach might be suitable:

  1. Comment out the namespace definition in the configuration file
  2. Access each affected page, and move it out of the pseudo-namespace, e.g. move "Bar:Some page" to "Bar2:Some page"
  3. Un-comment the namespace definition
  4. Move the affected pages back into the new namespace

Use a maintenance script[Bearbeiten]

Within the maintenance directory, there is a maintenance script which performs the above operation more effectively for a large number of pages; namespaceDupes.php. It is simple to use, but as with all MediaWiki maintenance scripts, consult the available usage information first (use --help) as an option.

Entfernung eigener Namensräume[Bearbeiten]

Das oben genannte Problem entsteht auch, wenn die Definition eines eigenen Namensraumes entfernt wird. MediaWiki kennt den numerischen Index für den Namensraum nicht mehr und versucht, im Hauptnamensraum nach den gewünschten Seiten zu suchen. Dies führt aber zu unzugänglichem Inhalt. Dieser Fall kommt selten vor, da bei den meisten Wikis kein Bedarf besteht, einen Namenraum zu entfernen. Das Problem besteht jedoch.

Siehe auch[Bearbeiten]

  1. z. B. führen Wikibooks:Import und Project:Import auf die gleiche Seite