什么是MediaWiki的Gadget(小部件)

 

译自MediaWiki的官网,URL: http://www.mediawiki.org/wiki/Extension:Gadgets

Gadget简介:

MediaWiki,为用户提供了一种方法,使用户方便使用其它用户基于Javascript或者CSS创建的小部件Gadget.

 

Gadget是由Javascript或者CSS代码片断组成的,被放置在MediaWiki名字空间里(对于MediaWiki的名字空间的概念请参看其它文章)。每一个Gadget都在MediaWiki:Gadgets-definition中占用一行,用来定义这个gadget。定义包括这个Gadget的名字,和描述以及组成这个Gadget的Javascript和CSS代码。

 

因为Gadget被放置在MediaWiki名字空间里,只有系统管理员可以编辑Gadget。这很容易理解:只有充分被信任的用户才可以编辑被其它更多用户使用的Javascript代码。Javascript代码是把双刃剑,如果被用来做坏事,会很容易被用来实现劫持账号或者监视用户的功能。

 

下载Gadget:

从https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/Gadgets.git;a=tree 可以下载到Gadget,或者也可以用git工具clone一份gadget,如下:

git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Gadgets.git

 

如何安装:

把Gadget目录复制到你安装MediaWiki的扩展目录(Extensions Folder)。然后在localSetting.php文件中,接近文件末尾的地方加上一行:

require_once( "$IP/extensions/Gadgets/Gadgets.php" );

 

使用Gadget:

可以使用的Gadget定义在MediaWiki:Gadgets-definion。只要有一个有效的Gadget在MediaWiki:Gadgets-define被定义,就能在每个用户的Special:Preference的Gadgets节选择是否启用这个Gadget(小部件)。在Special:Gadgets也能浏览Gadgets的列表,并有链接指向各自的系统消息(System Message),以方便编辑。

 

定义Gadget的格式:

在MediaWiki:Gadgets-definition中的每个Gadget的定义都以一个或者多个"*"开始,必须符合下面的格式定义。

 * Gadget的名字 [ 选项(可以忽略) ] | 页名字

 (* gadget_name [options (can be omitted)] | page names)

第一个域,Gadget的名字指的是gadget的内部名字。这隐含了一个系统消息的引用(System Message)。此例中,如果你定义了内部名为 my_gadget_name 这样一个gadget,则在MediaWiki:Gadget-my_gadget_name有一个使用wiki语法的关于这个gadget的简短描述。

 

注意,gadget的内部命令规则:必须以字母起头,后面可以接26个字母的大小写或者数字,以及连字符“-”,下划线“_”,冒号“:”,点号“.”。

 

选项的格式:

[option1 | option2 | … optionN]

空格将被忽略。每一个选项可以包括一个选项名,或者选项名还能被赋值,这些值以逗号隔开。如: option = value1, value2, value3

 

举一些Gadget定义的例子:

 * mygadget|mygadget.js|mygadget.css

or

 * mygadget[ResourceLoader]|mygadget.js|mygadget.css

or

* mygadget[rights=foo,bar]|mygadget.js|mygadget.css

or

* mygadget[ ResourceLoader | rights=foo, bar ] | mygadget.js | mygadget.css

 

选项的说明:

选项名

参数

描述

ResourceLoader

None

注明Gadget与ResourceLoader兼容。

dependencies

用逗号分隔开的ResourceLoader模块名

这里有默认依赖的模块列表.如果当前的gadget没有与ResourceLoader兼容的资源,这个选项将失效。

rights

用逗号分隔开的权限名

权限名列表在这里 privileges.

skins

用逗号分隔开的皮肤名

皮肤名列表在这里 skins.

default

注明对每个用户,包括匿名用名默认启用的gadget。不过注册用户仍然可以在它们的使用偏好设定中禁用gadget.

你可以为你的gadget指定额外的依赖,如:

* mygadget[ResourceLoader|dependencies=jquery.ui, jquery.effects.clip]|mygadget.js|mygadget.css

 

此例中,我们请求RescourceLoader与mygadget一起加载jquery.ui和jquery.effects.clip模块。注意只有在ResourceLoader中注册中的模块可以被设置成依赖项。

 

下面是设定gadget只对有某些权限的用户生效:

* ImprovedDeletion [rights=delete] | ImprovedDeletion.js 

此例中,我们设定gadget只有对有权限删除页面的用户有效。注意权限指点是这里的 permissions, 而不是像 administrators 一样的用户组。下面再给出一些例子:

modrollback[ResourceLoader|rights=rollback]|modrollback.js

UTCLiveClock[ResourceLoader|rights=purge]|UTCLiveClock.js

Ajax_sysop[ResourceLoader|rights=patrol,rollback,markbotedits,delete]|Ajax_sysop.js

 

ResourceLoader:

所有的gadget的css总是通过ResourceLoader被加载的。但是,一些老旧的javascript写法经常与ResourceLoader不兼容,所以每一个gadget必须被显式地注明兼容性才能被ResourceLoader加载。

否则,会使用旧式的写法 <script src="/w/index.php?title=MediaWiki:Gadget-gadget_name.js&action=raw"> 。

 

页面:

Gadget的定义行后面部分提定了组成gadget的Javascript或者css代码的文件,这些代码文件被放置在系统消息中(System Message)。所以的文件都必须以.js或者.css为扩展名。每个gadget都可以使用任意多个系统消息。一些共用的功能可以被多个Gadget使用。如下:

 * frobinator|commonStuff.js|frob.js|frob.css|pretty.css

 * l33t|commonStuff.js|tools.js|l33t.js

 

节(Sections):

定义在MediaWiki:Gadgets-definition中的gadget列表可以被分成多个节。每个节用两个或者多个"="号起头和结尾,“=”中间指定节的名字。如:

 == interface-gadgets ==

这样就定义了一个节(Section),标题在 MediaWiki:Gadget-section-interface-gadgets 页面中定义。

copyright ykyi.net

 

 

MediaWiki入门教程

 

MediaWiki是这个世界上使用人数最多的百科建站系统。全球最著名的Wikipedia.com就是用MediaWiki建立的。另外,MediaWiki是在GPL协议下免费开源工程,这意味着你可以免费使用它。下面将介绍如何使用MediaWiki.
 

如何安装MediaWiki?

从官网下载到MediaWiki的安装包,解压到服务器的根目录下面。然后用你的域名访问网站,就会提示你一步一步安装了。注意最后一个步骤会生成一个LocalSettings.php文件,你需要把这个文件上传到网站的根目录。如果没有把生成的LocalSettings.php放到根目录,下次输入域名访问网站会提示找不到LocalSettings.php。其实整个安装都超级简单!
 

怎么使MediaWiki只能够被私人使用?

在安装阶段有这个选项配置MediaWiki会被如何使用。如果错过了,可以删除根目录下的LocalSettings.php,再输入域名访问网站重新生成LocalSetting.php。这样有点麻烦,也可以直接编辑LocalSettings。比如:
# 禁止未登录用户编辑内容.
$wgGroupPermissions[‘*’][‘edit’] = false;
# 禁止用户注册,除非系统管理员创建用户。
$wgGroupPermissions[‘*’][‘createaccount’] = false;
 

怎么创建一个页面?

在这个例子中,我们会教你创建一个页面。页面的内容就是'如何创建一个页面'。
在网站的右上角上点击:登录。 然后用你的管理员账号登录。
在MediaWiki中创建一个页面的方法有点特殊。首先,你在搜索框中输入你将要编辑的词条名字,然后点击搜索。如果词条不存在的话,就会显示一个页面告诉你没有这个词条。在这个页面上会有一个选项提示你创建这个词条。点击“创建词条”。
输入以下内容:
 
 == Create a page ==
* 把词条输入搜索框,然后搜索。
* 搜索结果显示没有匹配到任何页面,这时有一个选项让你创建一个页面。
* MediaWiki标志语言(MediaKiki Markup Language也常被称为:wikitext)可以在 http://www.mediawiki.org/wiki/Markup_spec 找到。
* 各种编辑页面的例子可以在 http://meta.wikimedia.org/wiki/Help:Editing and http://meta.wikimedia.org/wiki/Help:Wikitext_examples 找到。
点击"预览"按钮,可以看到页面的预览效果。点击"保存页面",则这个页面被编辑完成了。
 

怎么改名一个页面?

有时候你想要把一个页面改名。MediaWiki处理改名的逻辑实际上是把这个页面使用新的名字移动到一个新的位置,MediaWiki会记住旧的名字,还会建立一个到新页面的引用。
在页面的上部找到"移动"标签页,点击!
填好新的页面名字,点击"移动页面"按钮。
系统会让你确认一次,然后改名就完成了。
 

怎么改变MediaWiki的Logo呢?

常常有人问如何把网站左上方的网站Logo换掉。
首先你创建一个宽135象素,长135-150象素的logo图象文件。把logo上传到服务器某个位置。默认是放在/skins/common/images/wiki.png。
编辑LocalSetting.php文件,修改 $wgLogo变量。
刷新页面,现在你可以看到新的Logo了。
 

怎么在页面中建立内部链接(Internal Links)?

不像标准的HTML语法,在编辑MediaWiki的页面时建立指向内部页面的链接是非常容易的。比如你要建立一个到词条名为“我爱香港”的内部链接,则在编辑页面时在词条名前加井号。
如: #我爱香港
MediaWiki的内部链接的颜色有两种,一种是红色,一种是绿色。当内部链接的颜色是红色时,表示还没有收录这个词条,如果你点击的话,会提示你建立新词条。如果是绿色,则相反。
 

如何改变MediaWiki的导航菜单?

比如我想要把我的wiki站点上所有的category都列在导航条上,那我就需要修改导航条。
在搜索框中输入: Mediawiki:Sidebar。搜索结果会给出导航条的页面。
选择“编辑”。
增加一行以**起头,|符号前面的字符表示导航项将要显示的名字,|后表示页面的名字。
最后选择保存页面,完成!
copyright ykyi.net