手冊:命名空間
![本頁使用了標題或全文手工轉換](https://cdn.statically.io/img/upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
命名空間(namespace)是一組目的近似的頁面組合,比如,帶有相同目的的頁面。可以把命名空間想象為在同一個Wiki中區分信息不同類型的部分,並保留分離自用戶詳情、幫助頁面等的「真實」內容。
頁面的命名空間前綴構成頁面標題的一部分,用一個冒號(:
)隔開。
技術總覽
存在於一個命名空間的頁面,頁面的標題格式是命名空間前綴與標題的組合,並使用一個冒號(:
)分開。
例如:
標題 | 命名空間 | 代碼 |
---|---|---|
Foo |
Main | 0 |
Template:Foo |
Template | 10 |
Module:Foo |
Module | 828 |
主命名空間(main namespace)不需要前綴。並且在主命名空間內的頁面不能使用任何以存在的命名空間前綴與冒號的組合作為其標題的開頭
頁面可以在僅改變其命名空間前綴的情況下,在不同的命名空間之間移動。
命名空間前綴可以翻譯,而且可以為每個命名空間配置別名(參見$wgNamespaceAliases
)。所有命名空間都有一個通用於所有wiki的「規範(canonical)」前綴。進行搜索時,別名和規範名稱可以被視為鏈接,而且在{{DISPLAYTITLE}}魔術字的幫助下,頁面名字會被顯示為該鏈接的名字。
每一個命名空間都有一個相應的命名空間索引。在數據庫中,標題被劃分為命名空間索引和文本索引,而且這也應用於page.page_namespace
和page.page_title
列的存儲。
主題與討論空間
- 要了解如何使用討論頁面,請參考 說明:討論頁 。
大多數命名空間都有一個相應的討論命名空間(或者「talk」命名空間)。
所有的討論命名空間的索引都是奇數,並且對於某個索引為 n 的命名空間,其所對應的討論命名空間的索引為 n+1。
具有偶數索引的命名空間是主題命名空間(subject namespace)(注意,它與內容名字空間(content namespace)是不同的概念)。
這種主題-討論的二元組合可以用變量 {{SUBJECTPAGENAME}}
和 {{TALKPAGENAME}}
加以分辨。
對於討論命名空間中的頁面來說,其<body>
標籤都具有「ns-talk
」CSS類,這在控制頁面樣式時可能會很有用。
內建命名空間
MediaWiki擁有18個內建的命名空間:
- 16個「真實」命名空間(real namespace),代表實際存在的頁面,編號為0到15,每個主題頁面都有對應的討論命名空間;
- 2個「虛擬」命名空間(virtual namespace),一個是動態生成的特殊頁面,另一個用作外部文件的快捷方式,編號分別為-1和-2。因為它們並不是表示數據庫中存儲的實際頁面,所以不可以在這兩個命名空間中創建或者刪除頁面,它們也沒有相關聯的討論命名空間。
完整的列表在下表中列出。
ID | 名稱 | 用途 | 討論頁 | |
---|---|---|---|---|
0 | (Main) | 「真實」內容條目 。[1] | Talk | 1 |
2 | User | 使用者頁面 。[2] | User talk | 3 |
4 | Project | 關於該wiki的信息。[3] | Project talk | 5 |
6 | File | 媒體描述頁面 | File talk | 7 |
8 | MediaWiki | 網站界面定製[4] | MediaWiki talk | 9 |
10 | Template | 模板頁面 | Template talk | 11 |
12 | Help | 幫助頁面 | Help talk | 13 |
14 | Category | 分類描述頁面 | Category talk | 15 |
-1 | Special | 保留特殊頁面 | N/A | |
-2 | Media | 直接鏈接到媒體文件的別名 |
每個命名空間還有一個從名稱派生的常量,常量中所有的字母都是大寫字母,空格用下劃��替換,前綴為「NS_」。例如「User talk」命名空間的常量為NS_USER_TALK。完整的列表可以在$1找到。 For example, the constant for the "User talk" namespace is NS_USER_TALK. A complete list can be found in Manual:命名空間常量 .
- ↑ 主命名空間沒有前綴。
- ↑ 編輯一個用戶的討論頁會提醒該用戶。
- ↑ 由
$wgMetaNamespace
定義,除非手動設置為其他參數,默認均為$wgSitename
。 - ↑ 只能由帶「editinterface」權限的用戶編輯。
定製命名空間
擴展及站點管理員可以定義一個額外的命名空間來將其他類別的頁面組合在一起。 更詳盡的說明,請參見手冊:使用自定義命名空間 。
功能
某些命名空間,諸如Project和Help,為方便而存在,相對於主命名空間沒有額外功能。
模板命名空間的頁面被嵌入包含時可以不使用命名空間前綴。
用戶命名空間頁面與用戶帳戶或其IP地址相關聯。對用戶討論頁的修改將自動產生一個消息通知。
"MediaWiki"命名空間中的頁面用於覆蓋語言文件中的默認消息,並且只有擁有editinterface權限的管理員或其他用戶才能編輯。
文件和分類頁面擁有特殊的功能,Help:文件管理 和說明:分類 中已有描述。 用戶可以使用"movefile"權限移動文件。 用戶可以使用"move-categorypages"權限移動分類頁。
所有在討論命名空間中的頁面都擁有「發表留言(post a comment)」的特性(參見meta:Help:Section#Adding a section at the end)。
參見
- 說明:命名空間 – user-oriented information.
Site administration
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.
- 擴展:Lockdown – to control access to namespaces.
- Extension:SkinPerNamespace – to use a different skin in a namespace.
For extension developers
- 手冊:使用自定義命名空間
- List of custom namespaces registered by extensions . If you define a constant for a custom namespace, list it here, too.
- Classes
- * 手冊:MWNamespace.php ,包含MWNamespace類
- 元維基上的Help:命名空間 (在版本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.