Manual:命名空间
命名空间(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
列的存储。
主题与讨论空间
- 要了解如何使用讨论页面,请参考 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
。
完整的列表可以在Manual:命名空间常量 找到。
- ↑ 主命名空间没有前缀。
- ↑ 编辑一个用户的讨论页会提醒该用户。
- ↑ 由
$wgMetaNamespace
定义,除非手动设置为其他参数,默认均为$wgSitename
。 - ↑ 只能由带“editinterface”权限的用户编辑。
定制命名空间
擴展及站點管理員可以定义一个額外的命名空間來將其他類別的頁面組合在一起。 更详尽的说明,请参见手册:使用自定义命名空间 。
功能
某些命名空间,诸如Project和Help,为方便而存在,相对于主命名空间没有额外功能。
模板命名空间的页面被嵌入包含时可以不使用命名空间前缀。
用户命名空间页面与用户帐户或其IP地址相关联。对用户讨论页的修改将自动产生一个消息通知。
"MediaWiki"命名空间中的页面用于覆盖语言文件中的默认消息,并且只有拥有editinterface权限的管理员或其他用户才能编辑。
文件和分类页面拥有特殊的功能,Help:文件管理 和Help:分类 中已有描述。 用户可以使用"movefile"权限移动文件。 用户可以使用"move-categorypages"权限移动分类页。
所有在讨论命名空间中的页面都拥有“發表留言(post a comment)”的特性。
参见
- Help:命名空间 – 面向用户的信息。
站点管理
扩展
- 分类:命名空间扩展
- Extension:NamespaceManager – 用于管理命名空间。
- Extension:BlueSpiceNamespaceManager – 允许您创建自定义命名空间。
- Extension:SpecialNamespaces – Extension:Interwiki 的修改版,其通过提供命名空间管理器特殊页面来更改命名空间。
- 扩展:Lockdown – 控制对命名空间的访问。
- Extension:SkinPerNamespace – 在命名空间中使用不同皮肤。
对于扩展开发者
- 手册:使用自定义命名空间
- 扩展注册的自定义命名空间列表 . 如果您为自定义命名空间定义了常量,也请在此处列出。
- 类
- 手册:MWNamespace.php ,包含MWNamespace类 (在版本1.39移除)
- 函数钩
- Manual:Hooks/CanonicalNamespaces – 添加自定义命名空间或更改默认值。
- Manual:Hooks/NamespaceIsMovable – 决定是否可以在命名空间中移动页面。
- Manual:Hooks/SearchableNamespaces – 修改可搜索的命名空间。
- Manual:Hooks/LanguageGetNamespaces – 为命名空间提供自定义排序或删除命名空间。
- Manual:Hooks/PrefixSearchExtractNamespace – 如果核心无法从搜索字符串中提取命名空间,则调用此方法以便扩展可以尝试执行此操作。