1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

===============Wiki 簡介

本帖由 callcall2005-09-06 发布。版面名称:源码讨论

  1. callcall

    callcall New Member

    注册:
    2005-09-04
    帖子:
    119
    赞:
    2
    一、何为Wiki(维客)

      首先,我们要搞清楚:wiki概念的发明人是Ward Cunningham。wiki这个字到底是什幺意思呢?根据FAQ的说法,WikiWiki一词来源于夏威夷语的“wee kee wee kee”,原本是“快点快点”(quick)的意思。实际上 wiki 也真的是既简单又快速,你可以看到 wiki 每天都在成长。

    [​IMG]
    wiki概念发明人:Ward Cunningham

      新概念的定义总是让人有点摸不着头脑,wiki 也不例外。先看看简单解释:Wiki--一种多人协作的写作工具。Wiki站点可以有多人(甚至任何访问者)维护,每个人都可以发表自己的意见,或者对共同的主题进行扩展或者探讨。
      还不明白,那就给你看看更复杂、更晕眩的解释:Wiki指一种超文本系统。这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作的辅助工具。我们可以在Web的基础上对Wiki文本进行浏览、创建、更改,而且创建、更改、发布的代价远比HTML文本为小;同时Wiki系统还支持面向社群的协作式写作,为协作式写作提供必要帮助;最后,Wiki的作者自然构成了一个社群,Wiki系统为该社群提供简单的交流工具。与其它超文本系统相比, Wiki有使用方便及开放的特点,所以Wiki系统可以帮助我们在一个社群内共享某领域的知识。

    二、Wiki概念的通俗解说


      还是有点云里雾里?那就通俗一点:根据 wiki 社群的定义,wiki 是一种提供「共同创作(collaborative)」环境的网站,也就是说,每个人都可以任意修改网站上的页面资料。这听起来挺疯狂的,万一有陌生人来网站上乱搞怎幺办?别担心,所有的 wiki 都有「版本控制(Version Control)」的概念,你随时都可以找回之前的正确版本;更何况你可不是单打独斗,社群的力量是非常惊人的。就在这种相信人性本善的概念下,整个 wiki 社群迅速地成长茁壮。如果你还是很担心,更可以帮 wiki 加入权限管理(Access Control)的机制,保证万无一失。除了版本控制之外,值得一题的是「格式化语法(Formating Rule)」。因为对一般人来说,HTML语法实在是个恶梦,所以 wiki 创造了一套更简单的写作语法,让大家可以专注在写作上。
      你还是不明白,那也不要紧,我们就先不要咬文嚼字,还是以一种看热闹的从容心态,先慢慢看下去。

    三、Wiki发展历史

    Wiki的历史还不长,无论是Wiki概念自身,还是相关软件系统的特性,还都在热烈的讨论中;所以怎样的一个站点才能称得上是一个Wiki系统还是有争议的。与Wiki相关最近出现的技术还有blog,它们都降低了超文本写作和发布的难度。这两者都与内容管理系统关系紧密。第一个 Wiki 网站诞生于1995年,Ward Cunningham 创建的,作为波特兰的模式仓库的模式定义和讨论的交互性场所: http://c2.com/ppr/;而其根源可以上述到1972年卡耐基-梅隆大学的 ZOG 数据库系统。
    1995年 Ward Cunningham为了方便模式社群的交流建立了一个工具-波特兰模式知识库(Portland Pattern Repository)。在建立这个系统的过程中,Ward Cunningham创造了Wiki的概念和名称,并且实现了支持这些概念的服务系统。这个系统是最早的Wiki系统。从1996年至2000年间,波特兰模式知识库围绕着面向社群的协作式写作,不断发展出一些支持这种写作的辅助工具,从而使Wiki的概念不断得到丰富。同时Wiki的概念也得到了传播,出现了许多类似的网站和软件系统。

    1995年3月25日 维客历史正式开始
    1995年5月1日 “模式名单的革新”发布。这是世界上第一个维客网站,是对“波特兰模式知识库”的一个自动 补充。网站发布之初,便立即在“模式社区”(pattern community)中获得成功。

    社区引入并保留的概念创新:
    1994年 “近期访问者”(RecentVisitors)、“人物索引”(PeopleIndex);
    1995年 “并不时新的变化”(NotSoRecentChanges);
    1996年 “丝线模式”(ThreadMode)、“丝线模式无益”(ThreadModeConsideredHarmful )
    1996年 “维客分类”(WikiCategories);
    1997年 “路线图”(RoadMaps);
    1999年 “更改概要”(ChangeSummary)(虽未继续下去,但却带来了快速变化〔QuickCha
    nges〕);
    1999年 “随机页面”(RandomPages);
    1999年 “(月度)变化”(ChangesIn )页面出现(“并不时新的变化”分离出去 并逐渐消亡);
    2000年 “搜索助手”(SearchHelper)

    [​IMG][​IMG]

    四、Wiki可以做什么?

    说法一:wiki 可以说是一种建站的工具,wiki考虑让更多人参与建设,因此它的语法与HTML相比要容易的多,几乎与普通写字板编辑文字差不多,很容易上手。w iki最适合做百科全书、知识库、整理某一个领域的知识等知识型站点,几个分在不同地区的人利用wiki协同工作可以共同写一本书。我们计划用w iki来编辑一部elearning百科全书,有兴趣的朋友可以与我联系,我们可以共同编辑。

    说法二:首先会想到的当然是共笔系统(例如 FreeBSD 共笔)、读书会、项目开发、写书、翻译、资料整理(例如网站设计资源)、常见问题整理等等,这些本来就非常适合一群人来做。其次你可以想想怎幺样来利用版本控制的功能,例如拿来整理想法(可以时常比对旧版本)、写作业、记上课笔记等等。甚至有人用 wiki 写百科全书喔!如果你还想到可以怎幺玩,欢迎告诉我。

    [​IMG]
    Wiki们在日本聚会

    五、Wiki技术和规范

    [​IMG]
    wiki标识

      wiki是任何人都可以编辑的网页。在每个正常显示的页面下面都有一个编辑按钮,点击这个按钮你就可以编辑页面了。有些人要问:任何人都可以编辑?那不是乱套了幺?其实不然,w iki体现了一种哲学思想:“人之初,性本善”。wiki认为不会有人故意破坏wiki网站,大家来编辑网页是为了共同参与。虽然如此,还是不免有很多好奇者无意中更改了wiki网站的内容,那幺为了维持网站的正确性,wiki在技术上和运行规则上做了一些规范,做到既持面向大宗公开参与的原则又尽量降低众多参与者带来的风险。这些技术和规范包括:

    1)保留网页每一次更动的版本,即使参与者将整个页面删掉,管理者也会很方便地从纪录中恢复最正确的页面版本。
    2)页面锁定,一些主要页面可以用锁定技术将内容锁定,外人就不可再编辑了。(虽然wiki都有这个功能,但我看到使用它的甚少,这可能跟w iki倡导的精神相违背吧)。
    3)版本对比,wiki站点的每个页面都有更新纪录,任意两个版本之间都可以进行对比,wiki会自动找出他们的差别。
    4)更新描述,你在更新一个页面的时候可以在描述栏中写上几句话,如你更新内容的依据、或是跟管理员的对话等。这样,管理员就知道你更新页面的情况。
    5)IP禁止,尽管wiki倡导"人之初,性本善",人人都可参与,但破坏者、恶作剧者总是存在的,wiki有纪录和封存IP的功能,将破坏者的IP纪录下来他就不能在胡作非为了。
    6)Sand Box(沙箱)测试,一般的wiki都建有一个Sand Box的页面,这个页面就是让初次参与的人先到Sand Box页面做测试,Sand Box与普通页面是一样的,这里你可以任意涂鸦、随意测试。
    7)编辑规则,任何一个开放的wiki都有一个编辑规则,上面写明大家建设维护wiki站点的规则。没有规矩不成方圆的道理任何地方都是适用的。

    六、Wiki的特点

    使用方便
    1)维护快捷:快速创建、存取、更改超文本页面(这也是为什幺叫作 "wiki wiki" 的原因)。
    2)格式简单:用简单的格式标记来取代 HTML 的复杂格式标记。(类似所见即所得的风格)
    3)链接方便:通过简单标记,直接以关键字名来建立链接(页面、外部连接、图像等)。
    4)命名平易:关键字名就是页面名称,并且被置于一个单层、平直的名空间中。

    有组织
    1)自组织的:同页面的内容一样,整个超文本的组织结构也是可以修改、演化的。
    2)可汇聚的:系统内多个内容重复的页面可以被汇聚于其中的某个,相应的链接结构也随之改变。

    可增长
    1)可增长:页面的链接目标可以尚未存在,通过点击链接,我们可以创建这些页面,从而使系统得到增长。
    2)修订历史:记录页面的修订历史,页面的各个版本都可以被获取。

    开放性
    1)开放的:社群的成员可以任意创建、修改、删除页面。
    2)可观察:系统内页面的变动可以被访问者观察到。

    七、如何玩转Wiki

      Wakka (WakkaWiki)是一种使用PHP语言的Wiki实现。Wiki地实现有很多种,使用Perl/Python/PHP都有(当然还有其它语言的视线)。因为我是PHP爱好者,比较关心PHP地实现。早期有PHPWiki和PWiki,现在比较知名的有TaviWiki (或者正式的应该叫 WikiWikiTavi ) (主站点在 http://tavi.sourceforge.net/),有些比较知名的站点,如Smarty Wiki就是使用Tavi。

      熟悉计算机的朋友们都知道,支持中文本身就是个大问题,这也限制了我们的选择。以下列举一些中文(Unicode)支持较好的wiki引擎:

    http://chiqchaq.sourceforge.net/
    http://www.openwiki.com/
    http://www.ecyrd.com/JSPWiki/Wiki.jsp
    http://moin.sourceforge.net/
    http://phpwiki.sourceforge.net/