<<

COVER STORY Lean

Lightweight wikis without QUICKIE WIKIS

If you are thinking about starting a , and you don’t want the over- head of a full-scale, -driven system, try these light and lean wiki wonders. BY FRANK WIEDUWILT

ikis are at the center of the a wiki is only feasible if it uses flat files hits. However, if you’re thinking about world we know as Web 2.0. In to store content. getting started with your own wiki and Wjust a few short years, the wiki Luckily, a number of smaller and sim- you don’t need the horsepower of a has become one of the most popular pler wikis are also available for high-end, database-driven system, a lean tools on the , thanks to a few users. These lean wikis have some re- wiki may be exactly what you need. very high profile projects and many strictions of course: projects should not smaller sites that are helping millions of have more than a few hundred articles. The Candidates users communicate and stay organized. If the number of pages keeps growing, We will be looking at five wikis, Wikep- The wiki’s open approach, where any- you can can expect major performance age, PWP, MoinMoin, PmWiki, and one can post and edit, makes it the per- fect counterpart for another famous tool For Bigger Projects of the new Internet known as the . The wikis discussed in this article are not suitable for large-scale projects with several Wikis offer an easy and intuitive means thousand pages. If you expect a large volume of content, and would appreciate more for collecting and editing content. sophisticated management features, you need a wiki with database support. If you are planning a large wiki with Mediawiki: Definitely the most popular wiki of them all, and the platform for the Wikipe- hundreds of users and thousands of dia online encyclopedia and its local derivatives. Mediawiki [2] uses MySQL as its data- pages, you’ll need a full-featured, data- base back-end. base driven wiki tool such as Mediawiki. Wikka Wiki: This project [3] also uses MySQL to store text. The is also extensi- But a community the size of the Wikipe- ble by means of plugins, and this makes it suitable for projects where the scope is not dia [1] community is atypical. For more known right from the outset. moderate tasks, a full-fledged wiki sys- ErfurtWiki: This wiki [4] supports various databases, and can even use flat files as its tem with an underlying database may back-end. The advantage is that you can use plugins, skins, and extension modules to have more disadvantages than benefits. modify the wiki’s look and feel to match your requirements. Installing and managing the wiki is just The Wikimatrix [5] page lists a number of wikis with and without database back-ends, too complicated. And for free webspace, describing each system’s capabilities in a comprehensive overview. where a database may not be available,

30 ISSUE 73 DECEMBER 2006 WWW.LINUX - MAGAZINE.COM Lean Wikis COVER STORY

Dokuwiki, all of which are under active community development. All of these projects promise simple installation, even for non-DBAs. In the simplest of cases, you just need to unpack the source code archive on the web to run the wiki. Some systems support a customized look and feel based on tem- plates, macros, or plugin-based exten- sions. Access controls are an important issue. If you are looking to create a wiki for public access, the danger is that un- friendly web users or robots might stum- ble across your page and misuse it for propaganda or ads. The Tipiwiki [6] homepage is just one example of wiki misuse. In August 2006, the wiki was more or less completely inundates with ad links, leaving the pages unusable ex- Figure 1: The simple structure of Wikepage lends itself to quick deployment, though the cept for the welcome page. general lack of documentation slows down the creative process. While wikis like Mediawiki have so- phisticated user management facilities In Wiki mode, editing is open to any page to get the wiki up and running. You that rely on a database back-end and user. In Personal mode, users need to can use any text editor to modify the allow administrators to define distinct supply a before editing a page. configuration. PWP uses CSS to format user groups with distinct privileges, the The password applies to all pages, how- screen output, and this makes it highly smaller wikis often have nothing of the ever, and there is no support for distinct customizable. kind. The wiki dialect used for markups user privileges. PWP does not support user manage- for tagging or linking is also an impor- The formating options range from var- ment, although the developers do pro- tant aspect. If you need to move to a ious text markups, through lists, to sim- vide password protection for a few large system some time later, it would be ple tables. The developers also let you functions, such as exporting wiki pages nice to know whether you can do so integrate images into wiki pages. The to static HTML. Lars Ackermann, PWP’s without having to redo the formating. wiki dialect differs considerably from author, recommends using the web that of Mediawiki; you can expect diffi- server’s access controls and restricting Wikepage culties with the process of exporting access to the wiki via the .htaccess file. The motto of the Wikepage [7] wiki is content to another wiki. PWP supports a variety of formating “unpack and go.” The package weighs in Unfortunately, Wikepage does not give options: text markups, indentation, ta- at just 38 Kbytes, and its author, Sefer users much in the line of howtos or bles, and images. Before you can use an Bora Lisesivdin, explains the reason for manuals: neither the homepage nor the image file, you first have to upload it to a the small size: in the good old days of source code archive provide descriptions special Uploaded Files area of the wiki. the Commodore 64, developers just had of the markups or a guide to creating The software will then let you link to the 38911 bytes of to work with, your own themes. image from any wiki page. The Uploaded but they still managed to come up with Files area can also store files in other for- functional programs. He promises to PWP mats for public access by any wiki user. keep the Wikepage to less than 38911 PWP [9] stores wiki pages in flat files The wiki has a version control system bytes, although he is working on a plu- and requires a web server with PHP ver- in which it stores all previous revisions gin interface. sion 4.2 or newer. If you are using PHP5, of the wiki pages. A diff tool shows the Wikepage is based on the Tipiwiki [6] the software requires PHP4 compatibility differences between two versions of a code and requires a web server running mode. Again, the basic configuration is page. A full text search against all the PHP 5.1.4 or better. To install the wiki, easily done with PWP: just unpack the pages in the wiki, including text pages you just unpack the program archive, source code archive and open the index uploaded to Uploaded Files, gives users and you’re up and running. Wikepage searching ability. supports themes, and you can even GLOSSARY PWP will generate reports for wiki change the interface language by copy- .htaccess: The .htaccess file gives pages. You can choose between hierar- ing a language file to the wiki’s root di- administrators the ability to control chical lists, tables, indexes of keywords, rectory. access to data on a web server. You'll or lists with the title and teaser for each Themes let you change the look, and find several tutorials on .htaccess files wiki page. PWP can create calendars at there are a number of examples that you on the web (e.g., http://httpd.apache. the push of a button with a page for can use for your experiments at [8]. org/docs/1.3/howto/htaccess.). each month and an overview of the

WWW.LINUX - MAGAZINE.COM ISSUE 73 DECEMBER 2006 31 COVER STORY Lean Wikis

lists, and icons. MoinMoin also supports tables. MoinMoin is the only test candi- date to have a WYSIWYG style editor for composing wiki pages. The wiki also supports subpages. One thing worthy of note is that the system supports text en- tries in DocBook syntax and can even export wiki pages to DocBook. MoinMoin stores previous versions of a text as backups. The version control system supports access to the last 100 versions, and let you access older versions. You can diff two versions and display the most recent edits. MoinMoin also provides an RSS feed of the latest edits. The developers give users powerful searching abilities that support page title or full-text searches, multiple operator-linked search keys, and Boolean expressions. The wiki also generate indexes of titles, words, and Figure 2: MoinMoin lets you track recent changes. categories. The selection of help texts and tutori- whole year. In a style similar to Medi- store texts. Macros and themes let you als is exemplary, with comprehensive, awiki, PWP generates a table of contents customize the look; the MoinMoin easy to understand howtos for any de- from primary and secondary headings at homepage has a collection of ready-to- ployment scenario. the top of the page. run macros. While one author is working on a MoinMoin has integrated user man- page, PWP will prevent access by other agement that supports granular access PmWiki authors. If needed, PWP will export the controls. The program locks pages dur- PmWiki [13] stores articles in flat text whole wiki content to a special directory ing editing to prevent competitive edit- files; it requires a web server with PHP as static HTML. The online help has ing. The administrator has the ability to version 4.1 or newer. The basic setup is comprehensive descriptions of the mark- rename texts, and in turn to prevent edit- just as easy to install as any of the wikis ups, which again differ from Mediawiki, ing of help pages or other texts. we have looked at thus far: just unpack as well as for installing and configuring Markups include character and para- the source code archive in a directory on PWP. graph formating, colored highlighting of the web server and load the index page the Python source code, internal and ex- to launch the wiki. Besides the server- MoinMoin ternal links (with help texts if needed), based version, there is also a standalone MoinMoin [10] is the only Python-based wiki that we will be looking at in this ar- ticle. As such, it requires a web server with Python support. If you are inter- ested in trying MoinMoin out, there is a desktop version of the wiki, aptly known as Desktop MoinMoin, which runs with- out a web server at [11]. Another local installation option is to run MoinMoin with the integrated server. This assumes a working Python installation. A web server is recommended for an open wiki that will need to support si- multaneous access by multiple users. The MoinMoin developers describe vari- ous deployment scenarios at [12]. The wiki stores articles in directories named after the corresponding wiki pages. MoinMoin has language support, and an internal feature for changing the lan- guage. Internally, the wiki uses UTF 8 to Figure 3: PmWiki is feature-rich and nicely documented.

32 ISSUE 73 DECEMBER 2006 WWW.LINUX - MAGAZINE.COM Lean Wikis COVER STORY

matically generates tables of content, and the system locks files against edit- ing, once they have achieved a specific status. Besides comprehensive documenta- tion, the Dokuwiki homepage has a collection of tutorials, covering topics such as syntax extensions and advanced design. Conclusions The wikis in this article facilitate the first steps towards setting up and managing your own project. You can use your lean wiki as a simple system or a tool for organizing discus- sions and documents. PmWiki, MoinMoin, and Dokuwiki all provide user management features that Figure 4: Dokuwiki is well-suited to documenting technical processes. let administrators create groups of au- thors with distinct privileges, which variant [14], a useful tool for getting to the source code archive in a directory on makes these tools suitable for larger and know the wiki, if installed locally. your web server, and off you go. If you more structured user communities. The PmWiki supports password protection intend to use the Access Control List fea- only way to protect the other systems is for various areas of the site. You can ei- ture to restrict access to your wiki, mod- to use the web server’s access controls ther prevent access to wiki pages or re- ify the configuration files after the install to protect the directory where the wiki is strict editing to a specific user group. (conf/. or conf/local.php), installed. ■ Granular access controls for the wiki and then define an administrator and allow the administrator to assign users corresponding password. INFO to groups. Templates let you customize the look. [1] : http:// en. wikipedia. org The program has local support. To in- Configuration is file-based – don’t bother [2] Mediawiki: http:// www. . org stall it, just download the required lan- looking for a front-end. CSS helps you [3] Wikkawiki: http:// wikkawiki. org guage file from [15] to two directories modify the interface – a reflection of the [4] ErfurtWiki: within the wiki, and edit the configura- flexibility of the CSS technology. http:// erfurtwiki. sourceforge. net/ tion file. PmWiki supports UTF 8. Dokuwiki can give you a status report [5] WikiMatrix: You can use CSS or Skins to customize on recent edits via RSS or Atomfeed. http:// www. wikimatrix. org/ the look. An extension adds support for And Dokuwiki supports multiple inter- [6] Tipiwiki http:// tipiwiki. sourceforge. net interactive skin development; in fact, face languages. To enable a language, [7] Wikepage http:// www. wikepage. org/ you can use a separate skin for each just add the language directive to the index. php?wiki=Wikepage user. Guest book and forum extensions configuration file – the Dokuwiki docu- [8] Themes for Wikepage: add value to the user experience. mentation provides a comprehensive http:// www. wikepage. org/ index. Formating capabilities for the wiki howto. If you wish to contribute a trans- php?wiki=Themes pages are well up to the task: besides the lation, the Dokuwiki pages give you in- [9] PWP: http:// www. lars-ackermann. de/ typical character and paragraph formats, structions on doing so. The wiki also has wiki/ static/ StartPage. html PmWiki supports lists, tables, and image full UTF 8 support for content. [10] MoinMoin: integration. A special extension supports Dokuwiki has excellent formating sup- http:// . . de image scaling. PmWiki provides a port, with text and paragraph formats, [11] Desktop MoinMoin: http:// moinmoin. wikiwikiweb. de/ DesktopEdition printed mode preview of articles, in tables, and image integration. Like Medi- which it hides menus, headers, and foot- awiki, Dokuwiki supports image scaling [12] MoinMoin installation help: http:// moinmoin. wikiwikiweb. de/ ers. with preview thumbnails that users can HelpOnInstalling/ The documentation for the project is click to display the larger version. The [13] PmWiki: http:// www. . org/ very good, with guides and manuals on Section Editing function allows users to [14] Standalone version of PmWiki: installing and running the wiki. Inciden- edit smaller sections of a larger text. The http:// www. pmwiki. org/ wiki/ tally, the guides are referred to as cook- diff function displays two versions of a Cookbook/ Standalone books. page and highlights the differences. [15] Language files for PmWiki: Full text searching is available, and http:// www. pmwiki. org/ wiki/ PmWiki/ Dokuwiki breadcrumb navigation at the top of the Download Dokuwiki [16] is designed as an open page shows a user the path they have [16] Dokuwiki: http:// www. splitbrain. org/ wiki right from scratch. Simply unpack taken through the wiki. Dokuwiki auto- projects/ dokuwiki

WWW.LINUX - MAGAZINE.COM ISSUE 73 DECEMBER 2006 33