views:

231

answers:

5

For an application (*) I'm developing I need a mixture of dynamically generated and static pages. It would be cool to use a wiki such that once a dynamic page has been accessed for the first time it becomes a static page that can be annotated by a user just like any other static wiki page.

In other words, I want to override whatever outputs the message "This topic does not exist yet" (or whatever) with something that a) generates the new content in wiki format and stores it in the database then b) parses and displays that text.

Oh and this should be recursive - the created page may have links to more dynamically generated pages and so on.

I will generate the dynamic page based on its name (including category/namespace info to some arbitrary depth).

One last thing - it would also be nice (but not essential) to do the creation of some of the dynamic pages upfront by a batch script (mainly for performance because these are pages it may take some time to generate).

So my question is which wiki software would be easiest to modify/write a plugin for to do this?

(*) Imagine a coredump analyser (think gdb) where you are presented with a list of dumps (maybe stored on some remote machine). You click on a dump, it gives you a list of threads. You click on a thread, it gives you the stack. You click on a stack frame it shows you the memory. You click on a word of memory and it displays the page of memory at that address and so on.

As you navigate the dump, you add notes about what you've discovered about the problem to assist you later or to share with your colleagues who might also be looking at the dump.

A few months later, the dump may have disappeared from the remote machine (takes a lot of space to archive all these dumps) but now you come across a similar problem. You enter one of the function names from a stack trace in your recent dump into the wiki search box and you retrieve the saved info about the previous occurrence.

Update: thanks for all the answers. I may actually go with MediaWiki. It looks as though I can create an ArticleViewHeader extension that can then call doEdit to create the page if it doesn't yet exist. There is a VirtualPage extension that appears to do something similar.

+2  A: 

I've seen this done with pmwiki.

Ryan Guest
A: 

The direct answer to your question is: Almost any OpenSource Wiki should be easily modifiable - pick the one (wiki or language) you are most familiar with.

I known that jspwiki provides this feature out of the box if I understood your question correctly. It's currently in apaches incubator. Check an JspWiki's Sandbox.

Olaf
+1  A: 

I find tiddlyWiki rather interesting

Chobicus
+1  A: 

Trac does this as well.

Epaga
+1  A: 

Perspective is yet another one. It's an open source .Net based wiki.

Richard Dorman