心百科:命名空间
命名空间(namespace),又称名字空间,类似于C++和Java中的“命名空间”。即当前页面标题的“前缀”(“命名空间:
”),在心百科中,所有的页面都分组存放在不同的“命名空间”中:
- 没有“前缀”的页面位于主空间中。文章(或称条目)页就属于“主空间”。
- 类似的还有“帮助:”、“分类:”、“讨论:”等等不同的空间。命名空间使各个页面以用途为依据区别开来。某些命名空间中的页面还具有一些特殊属性,或在与其他页面交互时具有不同的行为。
- 注意,冒号和前缀也可能并不表示一个命名空间:页面 FAQ:命名空间 实际上位于主空间中,这是因为“FAQ”这个命名空间并不存在。
命名空间的使用
在添加内部链接时,条目命名空间内的页面直接使用“[[页面名称]]”的形式进行链接;而其他命名空间内的页面则要使用“[[命名空间:页面名称]]”的形式。 注意区别命名空间与页面分类的区别:
- 一个条目有且仅有一个命名空间名称,用以区别页面的种类;
- 而一个条目的页面分类在技术上不是必需的,可以没有,也可以有多个——但维基化的一般原则要求我们每个条目至少有一个分类(Wikipedia亦是如此),否则会被归入“未分类的页面”。同样,一个分类之下可以有多个命名空间内的条目。
与维基百科(Wikipedia)类似,所有MediaWiki搭建的维基站点一般默认带有22个命名空间(MediaWiki默认为16个),其中包括10个基本的命名空间以及对应的讨论命名空间(如User和User talk);此外还有两个虚拟命名空间。下面的表格例举了当前在心百科上所使用的所有命名空间。
基本命名空间 | 讨论命名空间 | ||||
---|---|---|---|---|---|
通用命名空间 | |||||
0 | 主命名空间(条目) | Main | Talk | 讨论 | 1 |
2 | 用户 | User | User talk | 用户讨论 | 3 |
4 | 项目 | Project | Project talk | 项目讨论 | 5 |
6 | 文件 | File | File talk | 文件讨论 | 7 |
8 | MediaWiki | MediaWiki talk | MediaWiki讨论 | 9 | |
10 | 模板 | Template | Template talk | 模板讨论 | 11 |
12 | 帮助 | Help | Help talk | 帮助讨论 | 13 |
14 | 分类 | Category | Category talk | 分类讨论 | 15 |
维基百科命名空间 | |||||
100 | 主题 | Portal | Portal talk | 主题讨论 | 101 |
118 | 草稿 | Draft | Draft talk | 草稿讨论 | 119 |
828 | 模块 | Module | Module talk | 模块讨论 | 829 |
虚拟命名空间 | |||||
-1 | 特殊 | Special | N/A | ||
-2 | 媒体 | Media | N/A | ||
扩展命名空间 | |||||
106 | 表单 | Form | Form talk | 表单讨论 | 107 |
2300 | 小工具 | Gadget | Gadget talk | 小工具讨论 | 2301 |
2302 | 小工具定义 | Gadget definition | Gadget definition talk | 小工具定义讨论 | 2303 |
2600 | 话题 | Topic | Topic talk | 话题讨论 | 2601 |
心百科自定义命名空间 | |||||
3000 | 图书 | Book | Book talk | 图书讨论 | 3001 |
3002 | 期刊 | Journal | Journal_talk | 期刊讨论 | 3003 |
由扩展和心百科提供的空间编号在其他平台可能不适用 |
基本命名空间
9个基本命名空间,分别具有各自的用途。
主(命名)空间
无前缀。“主命名空间”又称“条目命名空间”,包含了维基上的所有条目页面,或“文章”。 在条目命名空间中,并非所有页面皆作为条目出现,也不计入统计。常见的特例包括:
用户命名空间
前缀为“User:”;别名为“用户:”。包含了所有用户的个人页面,以及其个人创建的相关页面。
文件命名空间
前缀为“File:”;别名为“Image:”(旧用法)、“文件:”、“档案:”或“图像:”。包含了图像和声音的文件描述页,以及指向文件本身的链接。参见Special:文件列表包含了全部文件的列表。文件命名空间内的页面可以通过一下三种方式链接:
- [[File:Wiki.png]]:直接将图像插入页面(插入声音或影片時会显示播放器,参见图片教程)
- [[:File:Wiki.png]]:产生一个指向文件描述页的内部链接
- [[Media:Wiki.png]]:产生一个指向文件本身的链接,中文写作[[媒体:Wiki.png]]
MediaWiki命名空间
前缀为“MediaWiki:”。包含了Mediawiki软件功能的特殊页面,例如在一些页面上自动生成的信息和链接。这个命名空间用于定制和翻译MediaWiki的软件界面。MessagesZh.php中的$messages消息现在大部分都放在MediaWiki命名空间中。Special:所有消息列举了MediaWiki命名空间中全部可定制的消息。这是一个大的列表,每一行都包含了一条信息和它的讨论页的信息,也包含了信息的当前版本和默认内容。 由于此命名空间下内容的变动会导致整个网站界面的变化,所有的消息都被保护,只有管理员可以编辑。
模板命名空间
前缀为“Template:”;别名为“模板:”;简写“T:”。包含了所有的模板。
帮助命名空间
前缀为“Help:”;别名为“帮助:”;简写“H:”。包含了所有使用指南信息。有些内容帮助读者更好地使用维基,而另一些内容则为编者准备,用来更好地编写维基百科。有些信息亦是从元维基和MediaWiki网站或者维基百科上复制而来的。
分类命名空间
前缀为“Category:”;别名为“分类:”;简写“CAT:”。包含了所有的分类页面,内容为该分类之下的页面和子分类列表,以及可选的分类提示信息。
讨论命名空间
以上提到的每一种命名空间都包含一个相应的“讨论命名空间”,或称“对话命名空间”。在命名空间的名称后面添加“_talk:”即可得到对应的讨论命名空间。例如,条目命名空间的讨论页皆使用“Talk:”前缀,而与用户命名空间相对应的用户对话命名空间则使用“User_talk:”作为前缀。其中下划线“_”可以替代为一个空格。而讨论命名空间的中文名称即在对应的命名空间中文名之后加上讨论,如用户讨论:为User talk:的中文名称。 讨论命名空间最主要的作用是用于编者们对条目的主题进行讨论;同时为了避免自我提及,一些与条目相关的维基计划信息也会在条目的讨论页中列出(如“此条目已被学术论文引用”)。一个特例是User talk命名空间。用户讨论命名空间用于向特定的用户进行留言。特别地,如果一个已登录用户的用户页发生了改动,他会在每一个打开的页面顶端看到一个新消息提示栏(“您有新消息”),直到他查看了自己的用户讨论页。
对于自定义的命名空间,用户也可以创建它们的讨论命名空间。
维基百科命名空间
用于维基百科(包括3类命名空间和它们的讨论命名空间),部分网站会沿用。
主题命名空间
前缀为“Portal:;别名为“主题:”;”简写“P:”。包含了所有的主题页面。一个主题页面是关于某一方面内容的信息集合,一个相关条目的入口。如Portal:哲学包含了是一个与哲学相关的综述以及条目分类入口。
草稿命名空间
前缀为“Draft:”。
模块命名空间
前缀为“Module:;”别名为“模块:”。包含了所有的Scribunto模块。模块让人使用Lua脚本语言实现在MediaWiki及其扩展的基本集中未包含的可供在模板中调用的解析器函数。参考help:Lua。
话题命名空间
前缀为“Topic:”。“Topic:”是特殊的讨论页,所以其没有对应的讨论页。目前仅在“Flow”中出现。
虚拟命名空间
在维基百科的22个命名空间中,有两个特殊的命名空间,其中的页面自动生成,不包含在数据库中,被称为“虚拟命名空间”。它们是Special和Media。
特殊命名空间
前缀为Special:;别名为“特殊:”。此命名空间中的页面由MediaWiki软件根据用户需要自动生成。如Special:最近更改会自动生成最新创建的页面列表。这些特殊页面可以通过一般的内部链接进行链接,如Special:最近更改。但如果一个特殊页面包含有参数,则必须给出一个完整的URL链接,如同普通的外部链接。例如,http://zh.wikipedia.org/w/wiki.phtml?title=Special:最近更改&days=3&limit=10 可以列出最近的10次更改。使用一些魔术字可以简化输入。Special:特殊页面包含了全部特殊页面的列表。
媒体命名空间
前缀为Media:,中文是媒体:,用于直接创建一个指向文件本身的链接,而不是文件描述页。 在Mediawiki中,不允许创建指向虚拟命名空间的重定向页面。
心百科自定义命名空间
用于心百科网站的自定义命名空间。
图书命名空间
图书命名空间,编号3000,是心百科自定义的一个命名空间,用来存储和调取相关图书的数据,多用于支持语义化和表单。
ns编号信息
使用魔术字{{ns:}}可以返回指定索引编号所对应命名空间的本地名称。如下表:
内容页面命名空间 | 讨论页命名空间 | |||
---|---|---|---|---|
用法 | 输出 | 用法 | 输出 | |
{{ns:-2}}或{{ns:Media}} | 媒体 | {{ns:-1}}或{{ns:Special}} | 特殊 | |
{{ns:0}} | {{ns:1}}或{{ns:Talk}} | 讨论 | ||
{{ns:2}}或{{ns:User}} | 用户 | {{ns:3}}或{{ns:User talk}} | 用户讨论 | |
{{ns:4}}或{{ns:Project}} | 心百科 | {{ns:5}}或{{ns:Project talk}} | 心百科讨论 | |
{{ns:6}}或{{ns:File}}或{{ns:Image}} | 文件 | {{ns:7}}或{{ns:File talk}}或{{ns:Image talk}} | 文件讨论 | |
{{ns:8}}或{{ns:MediaWiki}} | MediaWiki | {{ns:9}}或{{ns:MediaWiki talk}} | MediaWiki讨论 | |
{{ns:10}}或{{ns:Template}} | 模板 | {{ns:11}}或{{ns:Template talk}} | 模板讨论 | |
{{ns:12}}或{{ns:Help}} | 帮助 | {{ns:13}}或{{ns:Help talk}} | 帮助讨论 | |
{{ns:14}}或{{ns:Category}} | 分类 | {{ns:15}}或{{ns:Category talk}} | 分类讨论 | |
{{ns:100}}或{{ns:Portal}} | {{ns:101}}或{{ns:Portal talk}} | |||
{{ns:118}}或{{ns:Draft}} | {{ns:119}}或{{ns:Draft talk}} | |||
{{ns:828}}或{{ns:Module}} | 模块 | {{ns:829}}或{{ns:Module talk}} | 模块讨论 | |
{{ns:2600}}或{{ns:Topic}} |
注意主题命名空间与模块命名空间的编号很特殊,因为它并不是标准的MediaWiki命名空间。为了避免与标准命名空间冲突,使用了一个较大的编号数字。 所有编号的命名空间都能够搜索到。
查阅ns编号的方法
- 变量:使用 {{NAMESPACE}} 变量可以得到当前页面所处的命名空间。
- Javascript:Javascript变量 wgCanonicalNamespace 记录了命名空间的完整名称。变量 wgNamespaceNumber 则记录了命名空间的索引序数。
- 使用浏览器的调试模式(Chrome下F12)查看html代码的头部,通过MediaWiki预设的class即可知道当前命名空间的序号(见右图)
在CSS中使用ns代码
页面 HTML 代码中的 <body> 标记具有两个根据命名空间不同而不同的 CSS 类
- 一个是 ns-#,其中的 # 是命名空间的数字索引
- 另一个是 ns-XXX
- 所有位于非讨论页为“ns-subject”
- 所有位于讨论页为“ns-talk”
- 所有位于 特殊 命名空间的页面中为“ns-special”,
下面的 CSS 代码就可以根据对象所处命名空间的不同而改变它的外观:
.ns-subject a
{ /* 使主题页面上的大多数链接显示为绿色。 */
color: #00FF00;
}
.ns-talk a
{ /* 让讨论页中的链接显示为蓝色。 */
color: #0000FF;
}
.ns-3 a
{ /* 使用户讨论页中的链接显示为红色。 */
color: #FF0000;
}
注释