One thing I would definitely love to do, and will probably do, is create a "better" "wiki" software package. I can already see a personal need for such an application. Let me outline my frustrations with existing wiki applications that I have used and the features I find lacking, missing, and in need.
First, it is true that a few wikis offer some form of access control. This particular wiki is not bad, though I am not yet convinced a simple User|Group|World permission scheme will work well in a large collaborative effort. In my Wrth project I can see a need to have a group for editors, advisors, authors, and readers. It would be nice to define these as "roles" and then have a list of which users have what access, what roles have what access, and what the default access is. The immediate problem surrounding this is creating an interface to it.
I would like to better define the permissions for each document. I can see immediate use for the following:
An interface that springs to mind, which I think would work marvelously, is an extra text box (I like the box being above the edit box) that will allow people to write in the access list rules. The content could be something like this (the first two lines could be the default):
User: Everybody Permissions: None User: scb Permissions: Read, Write, Delete, Comment Role: Editor Permissions: Read, Write, Comment Role: Reviewer Permissions: Read, Comment User: johnDoe Permissions: Read
In this model the permissions would be added to, thus a person who is a Reviewer and an Editor will be allowed to Write/Edit the document.
I would love to have a wiki that was easy to skin and theme. I will take my hat off to SnipSnap because they have provided this in the form of a well structured document model offering great flexibility in the CSS layer. Not all systems have this. This software goes one step further and offers templates for each portion of the software, and in my case I converted these templates to HTML/CSS combinations. This could allow for greater flexibility in the future (but a good default or standard theme should be available, the one I had to work with was most painful).
In my opinion, each page should have clear markup using classes and id's. Each unique element needs to have its own id, and each element which might possibly want to be rendered separately should at least have its own class. (i.e. a menu should have an id, but a header should have a class.)
So far I have only seen one wiki that offered more than one markup language. Since the wiki markup languages are not standardized each one has its own unique brand of markup. Some suit my personality better than others. I would love to have a system where the markup was modular. This would allow for people to add their own markup, change the markup, change the rendered tags, etc. It would be nice to offer a few flavours.
I have invariably run into things I would like to do with my text that should be simple, but because I have been locked out of the markup process I have been unable to change it. The lockout has usually been due to the program language offered, therefore I would like to write the system in a language I know and understand (or, offer the markup as a cgi that can then be written in any language the web server can execute).
Also regarding markup: I have a few philosophical differences with people regarding how and why markup should be used. First off, the markup should be simpler than HTML, and probably bear little to no similarity to HTML. Why should I use a quasi-HTML language to produce HTML for me when I can just as simply write the HTML? I'm using a wiki to abstract myself from the HTML. Second, I do not feel everything HTML can provide should also be provided by the markup language. It might be nice to provide either intelligent blocking for CSS rendering tags to generate the styles, multiple rendering formats for the markup (i.e. choose the style of output you want for the page: e.g. a story submission would be governed by the same rules as documentation, but the output would be different so the CSS could render the page like a book, instead of an encyclopedia.).
The markup I would like to see:
(Note: I do not know how many sites offer this in the markup, but I would love to be able to mimic SmartyPants and offer “ and ” and other HTML element translations. This makes the pages look better and provides better formatting.)
One thing some sites have allowed and others have rejected is the ability to add arbitrary HTML to documents. This does pose a security risk, but it can also offer advanced markup to those documents that "need" it. In this case all HTML ought to be parsed and only certain tags and certain parameters should be allowed, all others removed. This would be harder to do, but could also provide better security (though it might be nice to provide this level of parsing on a per-document or per-security-level basis, allowing some users indiscriminate HTML use because they can be trusted.)
One thing I like about SnipSnap is its ability to add macros to the page. This wiki software does the same in the form of plugins. I think this is fantastic. What I would also like to do is add dynamic macros and content to the templates themselves (like SnipSnap with it's portlets). This would allow for a list of the recent changes rather than having to go to another page to see the changes (though the other page could show more than that which is in the template, making those pages still useful).
Useful data I would like to see structured like this: