Manual:命名空间
命名空间是一组具有相似用途的页面。可以将命名空间视为将维基中的信息划分为不同类型,从而将"真实"内容(关于维基主要主题的页面)与用户资料、帮助页面等区分开来。
命名空间"前缀"是页面标题的第一部分(如果存在),用于指示该页面所属的命名空间。它与标题的其余部分由冒号(:)分隔。所谓的"主命名空间"没有前缀。
每个命名空间都有一个"数字"或"索引",MediaWiki 软件使用它来代替名称引用该命名空间。
技术总览
维基上的每个页面都有一个唯一的标题,该标题可能以命名空间前缀开头,也可能不以命名空间前缀开头。不同命名空间中的页面可以共享相同的名字(即不考虑其前缀)。
例如,在 MediaWiki.org 上:
| 标题 | 命名空间 | 代码 | 页面描述 |
|---|---|---|---|
API
|
0 | "主命名空间"中的一个页面 | |
Template:API
|
Template | 10 | 一个可以嵌入到其他页面中的 模板 |
Manual:API
|
Manual | 100 | 我们 MediaWiki 手册 中的一页(在此情况下,该页重定向到另一个页面) |
由于"主命名空间"没有前缀,任何没有前缀的页面标题,或其看似前缀与维基上任何已知命名空间(或任何互维基/互语言前缀 )都不匹配的页面,都会被解释为主命名空间中的页面。
请注意,主命名空间中的页面不能以任何现有命名空间前缀后跟冒号的形式命名,因为这样的页面会因该命名空间的存在而变得无法访问。 (如果这是由于创建了新命名空间而导致的,可以使用 namespaceDupes.php 维护脚本来修复此问题。)
页面可以在仅改变其命名空间前缀的情况下,在不同的命名空间之间移动。
命名空间前缀可以翻译,而且可以为每个命名空间配置别名(参见$wgNamespaceAliases )。
所有命名空间都有一个"规范(canonical)"前缀,通用于所有wiki,不论配置。
执行搜索时,别名和规范名称可以被视为链接,而且在{{DISPLAYTITLE}}魔术字的帮助下,页面名字会被显示为该链接的名字。
每一个命名空间都有一个相应的命名空间索引。在数据库中,标题被划分为命名空间索引和文本索引,而且这也应用于page.page_namespace和page.page_title列的存储。
主题与讨论空间
- 要了解如何使用讨论页面,请参考 Help:讨论页 。
大多数命名空间都有一个相应的讨论命名空间(或者"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。
完整的列表可以在扩展默认命名空间 找到。
- ↑ 主命名空间没有前缀。
- ↑ 编辑一个用户的讨论页会提醒该用户。
- ↑ 由
$wgMetaNamespace定义,除非手动设置为其他参数,默认均为$wgSitename。 - ↑ 只能由带"editinterface"权限的用户编辑。
定制命名空间
擴展及站點管理員可以定义一个額外的命名空間來將其他類別的頁面組合在一起。 更详尽的说明,请参见手册:使用自定义命名空间 。
功能
某些命名空间,诸如Project和Help,为方便而存在,相对于主命名空间没有额外功能。
模板命名空间的页面被嵌入包含时可以不使用命名空间前缀。
用户命名空间页面与用户帐户或其IP地址相关联。对用户讨论页的修改将自动产生一个消息通知。
"MediaWiki"命名空间中的页面用于覆盖语言文件中的默认消息,并且只有拥有editinterface权限的管理员或其他用户才能编辑。
文件和分类页面拥有特殊的功能,Help:管理文件 和Help:分类 中已有描述。 用户可以使用"movefile"权限移动文件。 用户可以使用"move-categorypages"权限移动分类页。
所有在讨论命名空间中的页面都拥有"發表留言(post a comment)"的特性。
参阅
- Help:命名空间 – 面向用户的信息。
- Extension default namespaces
站点管理
扩展
- 分类:命名空间扩展
- Extension:NamespaceManager – 用于管理命名空间。
- Extension:BlueSpiceNamespaceManager – 允许您创建自定义命名空间。
- Extension:SpecialNamespaces – Extension:跨wiki 的修改版,其通过提供命名空间管理器特殊页面来更改命名空间。
- 扩展:Lockdown – 控制对命名空间的访问。
- Extension:SkinPerNamespace – 在命名空间中使用不同皮肤。
对于扩展开发者
- 手册:使用自定义命名空间
- 扩展注册的自定义命名空间列表 . 如果您为自定义命名空间定义了常量,也请在此处列出。
- 类
- 手册:MWNamespace.php ,包含MWNamespace类 (在版本1.39移除)
- 函数钩
- Manual:Hooks/CanonicalNamespaces – 添加自定义命名空间或更改默认值。
- Manual:Hooks/NamespaceIsMovable – 决定是否可以在命名空间中移动页面。
- Manual:Hooks/SearchableNamespaces – 修改可搜索的命名空间。
- Manual:Hooks/LanguageGetNamespaces – 为命名空间提供自定义排序或删除命名空间。
- Manual:Hooks/PrefixSearchExtractNamespace – 如果核心无法从搜索字符串中提取命名空间,则调用此方法以便扩展可以尝试执行此操作。