Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Best Wiki Software?
15 points by ivankirigin on Sept 2, 2007 | hide | past | favorite | 20 comments
I'm interested in starting a wiki. There are lots of free and open-source wiki platforms to choose from: http://en.wikipedia.org/wiki/Comparison_of_wiki_software

I've used MediaWiki in the past, which worked as expected. Any experience, insight, or preferences?

I'd like to easily add embedded flash applications. Ideally they would be user uploaded, i.e. a use modifies a page by uploading and adding a flash application as an example of what that page is discussing.



MediaWiki is the most used/supported wiki app. It has plenty of extensions. It's weak if you need wiki silos that require separate authorization. (There are extensions for controlling access, but it's added security and they have to patch holes where you can see data that should be protected.)

I like the simplicity and DB-free nature of DokuWiki. Because wiki pages are simple text files, you can easily add wiki pages through some scripts and backup/syncing is as easy as it gets. The plugin architecture is good. Uploads go a namespaced upload area, so it's easy to embed and share uploaded files between wiki pages.

MoinMoin is an OK wiki with the advantage that it's python. It's fairly easy to create wiki farms with MoinMoin, and you can add "macros" so pushing a button will get you a wiki page from different templates. Sections in a wiki page (delimited by headers) aren't independently editable, unlike the two PHP wikis above. User uploads are through page-specific attachments, unlike the more global space for file uploads in DokuWiki. You can have an ACL per page, but I like the Authorization system in DokuWiki better because it allows ACLs for entire namespaces.

All of the above are easily skinned. For example, in DokuWiki, we can change from my lab website skin (http://taylorlab.stanford.edu) to the default skin (http://wiki.splitbrain.org/wiki:dokuwiki) using a drop-down menu.


DokuWiki is great for documentation. That's the only type of wiki I've built so far, and I definitely have to recommend it.


I've had good experiences with MediaWiki also. It is very extensible because it is so widely adopted. I would suggest checking to see if someone has already implemented a feature to MediaWiki similar that you suggest, since you are already familiar with it.


One of the most important things you should consider, even above feature list, is your users' familiarity to the wiki software. Almost everyone is at least familiar with mediawiki's reading interface (if not basic editing) because of wikipedia, so if you're starting a wiki that is going to have any appreciable amount of users, mediawiki is almost a no-brainer.



I prefer moinmoin - python-based, no need for a database and with per-page access control.

http://moinmoin.wikiwikiweb.de/


In my experience, Moimoin takes a lot of gardening to keep clean.


+1 for moinmoin



Actually we're evaulating this as well for our internal collaboration needs. Not sure if that's what the OP is needing though.


I'm a fan of DokuWiki. Easy to install, no database (so easy to write grep-like tools to do fun things with text file content), fairly decent permissions scheme.


+1, it is lightweight and feature rich enough.


MediaWiki is incredibly well thought-out and tested, and is pretty easy to extend. Most of the alternatives become unmanageable as the number of articles grows beyond a few thousand.


It does look good. Flashlets look like a nice extension. http://www.mediawiki.org/wiki/Extension:Flashlets



Ugh, I use usemod, but am currently looking for a replacement. It's old, hasn't been touched since 2002, /doesn't/ have a plugin system, and its syntax has been superseded - its table support is primitive, for instance. Good points are, that it doesn't need a database, and, I dunno, it's useable, but the bar has been raised since then. I was looking at wikkawiki, but just now have found that what people have been saying about MoinMoin appeals to me.


MoinMoin is extensible and modular system. You can replace almost any part of the system by installing a plugin. It is the best system for a typical wiki hosted on your server, if you like to extend and customize the system, and you happen to like Python.

A wiki page can use any markup supported by the system parsers. MoinMoin comes with its own markup, rst, plain text and docbook parsers. Parsers for other markups created by the community are in http://moinmoin.wikiwikiweb.de/ParserMarket. You add your own parser that know how to parse the text and how to drive the formatter, which create the html. Parsers are also used for syntax highlighting. Moin comes with cplusplus, CSV, irc, java, pascal and python.

Formatter can create any output you like - the default create html, and the system provides other formatters for xml, docbook and plain text. You can add your own formatter if needed. Any page can be formatted in any exiting format, for example http://moinmoin.wikiwikiweb.de/?action=format&mimetype=t....

To create custom applications, you usually add both action and macro plugins. Macro is a plugin that execute when a page is rendered and return output. Action is a plugin that handle request to urls like /wiki/pagename?action=foo. Most of MoinMoin UI is implemented in terms of actions and marcos, so for example, if you want to have a different RecentChanges - you can simply install a modified RecentChanges macro in your wiki. You can find lot of actions and macros in http://moinmoin.wikiwikiweb.de/ActionMarket and http://moinmoin.wikiwikiweb.de/MacroMarket.

Formatted pages are compiled to Python bytecode, and literally executed when a page is visited. Static macros run when a page is compiled, and their output is compiled into the page. Dynamic macro are executed during page runtime, and are used to provide user, time or namespace dependent data.

MoinMoin let you have acl for entire wiki, evaluated before and after page acl. You can have a default acl applied to pages without acl, or page specific acl. See http://moinmoin.wikiwikiweb.de/HelpOnAccessControlLists. For greater control, you can use your own security policy object, implementing any security scheme you like. See http://moinmoin.wikiwikiweb.de/SecurityPolicy.

MoinMoin UI can be changed by a theme plugin. A theme is responsible for creating the stuff before an after a page or action content. You can provide multiple themes for single wiki, or your own customized theme. MoinMoin uses plain Python as "template" language - you can easily change the behavior by overriding few methods. See http://moinmoin.wikiwikiweb.de/HelpOnThemes. There are many themes created by the community in http://moinmoin.wikiwikiweb.de/ThemeMarket.

MoinMoin support Wiki-RPC 1 and 2 http://www.jspwiki.org/Wiki.jsp?page=WikiRPCInterface2. You can also add xmlrpc plugin to extend the system as you like.

MoinMoin can be deployed on any platform, either using plain CGI (slow), standalone or twisted Python server (e.g. behind Apache), or using FastCGI (recommended) or mod_python (more tricky).

There is a GUI editor - modified FCKEditor, which may be easier for common users, but it has issues.

Search is very powerful, supporting Google style modifiers, booleans and regular expressions. However, search become slow on big wikis. For typical wiki it is just fine. For bigger wikis it is painfully slow. See http://moinmoin.wikiwikiweb.de/HelpOnSearching. There is an experimental index search engine using Lupy. The next version will have a better search using http://www.xapian.org/.

MoinMoin has great Unicode support - anything can be unicode: page content, page names, group names, user names and even passwords. User names can also contain spaces, so users can register with their real name.

MoinMoin has the best Right to Left support. You can define a language and direction for whole wiki, single page, sections within a page, or words within a paragraph. Other systems either does not support this, or have partial support using raw html.


It depends, I guess.

I wrote my own, because I wanted 1) something in Ruby on Rails, 2) wasn't happy with Instiki, and in any case, 3) wanted something that I know very well. It's available here, and is free software:

http://dedawiki.dedasys.com


We use http://wikkawiki.org - a lightweight and stable wiki engine.


I rate http://groupswiki.com - nice simple UI.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: