自1995年3月25日第一个Wiki网站诞生以来,Wiki系统以其简洁的语法规则,方便的在线编辑和完善的版本管理功能、得到越来越多用户的青睐,已应用到企业内部网站、社区交流和个人知识管理等领域。Wiki Engine也由最初的几个发展到上百个,使用各种开发语言开发。比较有代表性的有Python开发的MoinMoin和ZWiki;用Perl开发的TWiki和UseModWiki;用PHP开发的MediaWiki和PhpWiki;用Java开发的JSPWiki等。本文介绍的MoinMoin就是用Python脚本语言开发,是一套具有模块化设计和高灵活性的Wiki系统,以GPL协议发布,源代码开放。著名的Python社区http://www.python.org/moin/和Debian社区http://wiki.debian.org/的Wiki系统都是使用MoinMoin来搭建的,如图1所示。
项目起源
该项目最初由德国人发起,Moin是德国方言早上好的意思,MoinMoin的叫法是借用了WikiWiki这种Wiki习俗。MoinMoin最初是在PikiPiki系统的基础上发展起来的。PikiPiki的作者叫MartinPool,由于想比较一下用Python实现的Wiki系统与Java或Perl语言实现的Wiki系统在代码质量和性能上的区别而开发了只有一个文件几百行代码的PikiPiki系统。PikiPiki系统的代码量小,结构简单,但已具有了Wiki系统的基本功能,如在线编辑和全文搜索等。为Wiki系统的实现提供了一个简单而稳定的框架,其提出的以纯文本方式把数据存放在文件系统中的做法一直沿用到现在的MoinMoin系统。除MoinMoin外,还有几个Wiki项目也是基于它的代码开发的,如MonkeyWiki和DiamondWiki等。现在,PikiPiki系统已停止开发,最后的版本为2000年发布的1.63版。
发展历史
MoinMoin使用了Python脚本语言开发,是跨平台的、可运行在Linux/Unix/BSD、Windows和Mac OSX系统上的Wiki系统。项目始于2000年,2000年7月29日发布了第一个以MoinMoin命名的版本——MoinMoin 0.1,这个版本的作者是JurgenHermann,他在PikiPiki 1.62版代码的基础上进行开发。第一版的MoinMoin的功能和PikiPiki差不多,只修正了一些Bug和增强了显示的效果,没有增加新的功能。
2002年5月10日,MoinMoin 1.0正式发布,MoinMoin开始完全转向Python 2.0,不再支持Python 1.5,同时该版本还增加了很多新的功能,如附件、E-mail通知、变量替换和预览等。至此,MoinMoin已完全摆脱了PikiPiki的影子,自成一派。
2004年12月6日,MoinMoin 1.3版发布,这是MoinMoin最重要的一次版本更新,以模块化的思路重新设计了内部代码结构,能在不改变核心代码的基础上很方便地通过宏(Macro)、分析器(Parser)、操作(Action)和主题(Theme)来扩展MoinMoin的功能,如图2所示。
开始使用UTF-8字符集,并作为MoinMoin系统惟一支持的字符集;可以使用高性能的Twisted服务器作为Web服务器,以提升服务器的处理能力;支持ACL(访问控制列表)安全设置,这是MoinMoin Wiki开始支持内容管理系统(CMS)的一个重要改进;支持单实例多服务;支持更好的文本搜索引擎。从MoinMoin 1.3版开始,MoinMoin已完全可胜任企业网站和企业知识管理平台等关键应用领域的需求。
现在最新的MoinMoin发行版是1.5.3,支持GUI在线编辑器功能,MoinMoin 2.0版也已在开发当中。
从JurgenHermann启动MoinMoin这个项目开始就吸引了大量优秀的Python程序员,他们为MoinMoin项目贡献了高质量的代码和文档,使MoinMoin不断创新,功能不断完善。MoinMoin社区很活跃,在各种大型的开源盛会上都能看到它的身影,如Google Summer Of Code 2006和EuroPython2006等。现在,MoinMoin已成为互联网上最流行的Wiki系统之一,在http://www.c2.com/cgi/wiki网站评选的十大Wiki Engine排行中高居第一位,而紧随其后的分别是MediaWiki和PhpWiki。
项目应用
MoinMoin系统的网站是http://moinmoin.wikiwikiweb.de/,网站搭建在MoinMoin系统之上,如图3所示。
用户可以在网站上找到很多有关MoinMoin的资料。包括MoinMoin的安装步骤、MoinMoin的Wiki语法参考和一些常见问题的FAQ等,这些资料都是世界各地的MoinMoin用户通过Internet贡献的。在这个网站还能下载各种有用的扩展插件,以扩充MoinMoin的功能,如在线回复、在线投票和日历等。如果需要的功能现在MoinMoin还不具备,还可在网站上的FeatureRequests页面提出具体需求,在下一个版本就很有可能包含所提交的功能需求了。MoinMoin系统中的很多功能都是这样开发出来的。在访问网站时,用户还可以发现MoinMoin系统的很多系统信息都是中文,这得益于MoinMoin系统的i18n设计和世界各地中文用户的贡献,它已被翻译成20多种语言。如果想对MoinMoin的中文化做出贡献,可以登录http://moinmaster.wikiwikiweb.de/网站,注册一个用户并加入一个语言组后就可以进行翻译。MoinMoin开发社区充分利用了Wiki系统方便的在线交流的特点,使社区与用户的联系更加紧密,更加有效。不仅仅MoinMoin项目采用这种方式,很多开源项目都是采用这种方式与用户沟通,使用户也渗透到软件开发过程中来,使用户与社区共同发展、成长,最终用户反馈社区,促进社区的发展状大。我们相信随着MoinMoin、Plone、Zope3这些优秀的Python应用被越来越多的国内用户所接受,MoinMoin将会成为国内Wiki系统的主流。国内知名的Python社区啄木鸟社区的网站就是使用MoinMoin来搭建的,该社区依靠MoinMoin强大的在线协作功能,编写和整理了大量有关Python的资料,是学习MoinMoin,学习Python的好地方,如图4所示。
MoinMoin是一个成功的、优秀的开源项目,世界各地的志愿者通过国际互联网联系在一起,创造了MoinMoin Wiki系统,创造了MoinMoin开源社区。不论水平高低,贡献大小,只要有时间,有贡献的精神,都可为这个社区出一分力。作为回报,用户也将会得到更强大、更可靠、更安全的系统。本文作为一篇MoinMoin的简单介绍,希望能帮助大家了解MoinMoin社区,了解开源社区。同时,更希望大家能从中认识开源社区,认识开源文化,从而能投身到开源社区中,为开源社区贡献你的智慧。
TAG: MoinMoin Python python 维基 系统












