Posts tagged MediaWiki

删除MediaWiki类别页面中的字母索引

貌似我好久没折腾MediaWiki了,这东西确实好用,不过小问题确实蛮多。除了那非智能的中文搜索,还有一堆小缺点滴。比如说这个:分类页面的首字母索引问题。
原始的MediaWiki分类页面是这样的。

怎么样,很挫吧,要是分类里有中文页面那就更挫了。。

于是乎我就像把这些首字母索引给去掉,其实方法挺简单,修改MediaWiki主目录下includes文件夹中的CategoryPage.php就行了。
Mediawiki分类页面中默认的文章列表有两种,一种是三列的,一种是单列的,分别对应CategoryPage.php文件中的columnList和shortList两个函数。把首字母索引给去掉的修改也很简单:
在columnList函数中把
$r .= "<h3>" . htmlspecialchars( $articles_start_char[$index] ) . "$cont_msg</h3>\n<ul>";
替换成$r .= "<ul>";

在shortList函数中把
//$r = ‘<h3>’ . htmlspecialchars( $articles_start_char[0] ) . "</h3>\n";注释
掉然后把$r .= ‘<ul><li>’.$articles[0].’</li>’;替换成$r = ‘<ul><li>’.$articles[0].’</li>’;
接着把
if ($articles_start_char[$index] != $articles_start_char[$index - 1])             {                 $r .= "</ul><h3>" . htmlspecialchars( $articles_start_char[$index] ) . "</h3>\n<ul>";                            }
注释掉就行了

把修改完的CategoryPage.php替换掉原来的,刷新页面,OK。顺便把原来的三列改成两列的模式。效果见下图,相比原来那肯定顺眼多了。
[...]

MediaWiki 浮动目录

    继续折腾MediaWiki,写了个GreaseMonkey脚本实现了MediaWiki目录的浮动效果,基本上满意了。话说GreaseMonkey真TM的好用。。。
脚本链接:已经上传至Userscripts,地址见此。可以点击此处直接安装。
使用方法:按“m”键或者Ctrl+左键显示目录,ESC隐藏
源码见此:链接
注:借鉴了LookItUp2这个脚本的实现方法,强烈推荐此脚本。

MediaWiki的内容隐藏

  MediaWiki + VIM是我最近折腾的两大重心。当初选择wiki程序的时候也曾被dokuwiki和moinmoin勾引过好久,dokuwiki不用数据库,很轻巧,moinmoin有我喜欢的Python。不过到最后还是因为维基百科而选择了MediaWiki。永久了也就越来越放不下了,至于其他的两个,先把 MediaWiki折腾好了再说。
  个人认为在MediaWiki里面写东西的时候内容隐藏的功能绝不可少。特别像我这种喜欢贴代码和流程思想的人,往往一页写下来老长老长。而且我对 MediaWiki最不满的就是目录无法自动滚动,所以再次浏览或编辑这条目的时候只能PageUp/Down的狂摁,相当难受。
  于是乎我今天就在这找到了个好东西—>Toggle。他们自己是这样定义的:This feature allows for toggling the visibility of any part of the page.(能让我们切换页面上一切元素的显示/隐藏状态)哈哈,这下赚大发了。
  Toggle不是基于MediaWiki的插件,而是js代码。要想在MediaWiki用它必须修改MediaWiki:Common.js页面(用MediaWiki的原话来说在此处的JavaScript将加载于所有用户每一个页面)。修改方法也很简单,用管理员登陆,在MediaWiki的搜索框中输入MediaWiki:Common.js。点击进入,不存在的话直接创建页面就行了。直接在浏览器中进入可能会出现403Forbidden的情况(亲测,估计是哪个权限没配好)。最后在这个页面增加以下代码http://www.mediawiki.org/wiki/MediaWiki:Common.js
—————————以下是使用介绍—————————
我们可以给为任意元素来生成一个Toggler(就是隐藏/显示的切换器,以下统一用Toggler)。
最简单的方法是手动增加Toggler。要定义一个基本的toggler,只要增加这样的一个元素就行了。

1: <span class=”_toggler-CLASS”>toggler</span>

其中“_toggler-CLASS”的“CLASS”对应你要切换的页面元素的Class名称因此像下面的代码就能完美地完成我的目标。

1: <div style=”display: none;” class=”test”>隐藏测试</div>
2: <span class=”_toggler-test”>隐藏测试</span>

代码很好理解,首先创建了一个默认为隐藏的DIV,<div></div>填入我们想隐藏的任何东西(代码、图片…)。然后创建了对应这个DIV的切换器。事实上我更喜欢把创建切换器写到创建DIV之前,效果更好。
最方便的方法是使用MediaWiki的模板,首先创建模板Template:Hide,填入以下代码并保存。

1: <includeonly><span class=”_togglegroup [...]

MediaWiki插件

用MediaWiki有一段时间了,整理几个必备插件,做个备忘.

SyntaxHighlight_GeSHi 代码高亮,使用相当方便

效果见图

下载方法:SVN Checkout就行,SVN地址:

1: http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/SyntaxHighlight_GeSHi/

用方法,修改LocalSettings.php,加入下面的代码。

1: require_once(“extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php”);

2.FCKeditor

高级编辑器,MediaWiki默认的那个实在是简单的惨不忍睹
效果: 
对比一下原来的: ,差距大吧…
下载地址:

1: http://mediawiki.fckeditor.net/nightly/svn/mediawiki_fckeditor_ext_N.zip
2: http://svn.fckeditor.net/MediaWiki/trunk (SVN地址)

使用方法:

首先下载最新版的FCKeditor,解压,然后拷贝全部文件到extensions\FCKeditor\fckeditor文件夹。
然后修改LocalSettings.php,加入下面的代码便可。

1: require_once( “extensions/FCKeditor/FCKeditor.php” );

3.图片扩展,MediaWiki添加图片是在是不方便,用了LinkedImages就方便多了。加了这个插件后引用图片就可以这样来写:

1: <linkedimage>
2: wikipage=Main_Page
3: tooltip=Main Page
4: img_src=Image:Sample.gif
[...]

MediaWiki

 平时在电脑上记笔记用的最多的就是Google Notes加上EverNote,Google用来计自己扯的东西,而Evernote则是用于摘录。这俩一组合用起来一直感觉不错。不过最近记录一些AE的东西,比如说对一些接口的想法了啥的。然后总想在笔记中加一些横向的链接,这下用Google Notes就有点勉为其难了。然后就想像到了MediaWiki,干这事它在行啊,哈哈。
  MediaWiki很早以前就折腾过,不过那时感觉平常用不着。然后升级了MySQL和PHP之后就没再管它了(应该说是升级了PHPnow之后!:),再加上在本地我还架了个WordPress,捣鼓过来捣鼓过去也没让他们两个和平共处)。现在又得重操旧业了,装了以后试着写了一些,感觉还不错,检索了链接了这些都挺方便的。再说Wiki的语法还挺简单,OK,以后就用它了。
    这是我的Wiki主页,很挫但是很好用,简单一点就行了。就叫它Lajipedia吧…

     ms好久没更新Blog了,真是该打。