标签类目:MediaWiki

用MediaWiki做个人知识和信息管理系统

试过无数的个人知识管理系统,发现最好的只能是 MediaWiki。只要自己有个稳定的主机,那么用 MediaWiki 就可以架设一个在线的个人知识管理系统。MediaWiki 适合用来做认真的学习笔记,能够很方便地管理结构化半结构化的知识系统,相当于创作自己的维基百科。如果是随手记录不成体系的小技巧,那就用 Evernote 好了。另外,MediaWiki 还能用来做个人的项目管理,只要编写一些简单的模板就行了。项目中涉及的笔记和文档也尽可能直接放到维基里,可以全作成项目页面的子页面,这可比硬盘上放一堆乱七八糟的文档让人舒心多了。

MediaWiki 的厉害之处就在于其简洁的语法以及强大的模板功能。简洁的语法可以实现快速的文档编写,用几个等号就能设定标题实在太爽了。把一个门类的知识目录放在模板里,然后放到每个页面底部,就可以实现最快速的知识导航和分类。另外,MediaWiki 还有丰富的插件库可用于扩充其功能。不可能有比 MediaWiki 更简洁、灵活、而强大的知识和信息管理系统了。

P.S. 因为有大量的个人知识笔记要做,原来的教研维基不再开放,改成了私人使用。关闭前每天的访问量一百多,Alexa排名27万上下。

一个极简单的MediaWiki插件Google chart

为了让MediaWiki显示图示,尝试做了一个极简单的MediaWiki插件:Google chart。第一次做插件,呵呵。

使用很简单。比如,在MediaWiki中插入以下代码:

<chart cht=bvs chs=800x300 chbh=20,1 chxt=x,y chco=76A4FB chls=2.0 chd=t:1,2,3,6,9,13,20,28,37,49,60,72,83,92,98,100,98,92,83,72,60,49,37,28,20,13,9,6,3,2,1 />

就显示一个直方图:

直方图

mediawiki解析list的一个bug

很早前就遇到过这个bug,今天再次遭遇,终于找到解决的办法了,耶!

具体来说,就是mediawiki在解析多个list时,特别是嵌套在不同的template中的list时,可能从某个list开始就不再在解析时添加<ul>了。虽然此时解析器仍然添加<li>,但是丢失的<ul>会导致排版错乱。

摸索了半天,终于找到解决的办法。解决这个问题不是靠出问题的list,而是靠前一个list。只要在出问题的list之前的那个list的尾部添加一些让解析器工作的代码即可。为了不影响显示,只要添加一行注释就行了。

让MediaWiki支持自定义的文件类型图标的方法

为了让MediaWiki的[[Media:]]标签能够在显示链接时根据文件的类型给出不同的图标,我昨天研究了一天,试了好几种方法,都没能很好地解决。主要是受网上已有的方法的误导,走了弯路。今天终于找到了简单的解决方法。不借助任何插件(extension),只使用MediaWiki的Template和CSS即可实现。具体做法如下:

关于上传。为了确保能够上传pdf等其它类型的文件,需要在LocalSettings.php中加入以下代码:

$wgFileExtensions[] = "doc";
$wgFileExtensions[] = "pdf";

创建模板。创建template:file。其中代码如下:

<span class="media_{{{1}}}_link">[[Media:{{{2}}}|{{{3}}}]]</span>

修改CSS。在skin的css文件中加入以下代码:

.media_pdf_link a{
background: url(icons/pdf.png) center right no-repeat;
padding-right: 13px;
}

当然,你得首先把icon文件复制到合适的位置。上面只给出了pdf的,其它的依此修改即可。

调用模板。调用模板的代码如下:

{{file|参数1|参数2‎|参数3}}

其中:参数1=文件类型,参数2=文件名,参数3=显示的标题。

例如:{{file|pdf|thefilename.pdf‎|The File Title}}

最后的效果我就不贴图了,相当于把原来的MediaWiki里面的外部链接的那个图标换成了文件类型图标。

另外,利用更复杂的技术可以让参数1文件类型由程序自动实现。尝试后感觉多此一举,为了这点小事装这个插件那个插件,还不如手工输入好。

返回顶部