We all don’t like seeing the FrontPage defaced. Yet, we still want to be able to edit it. How can we do this safely, without using AccessControlLists or even StagedCommits?
You can have it so that the FrontPage uses DelayedCommits. When a page uses DelayedCommits, changes don’t apply until a specific number of hours or days have passed since the last edit to the page.
This effectively dissuades slashdot trolls from messing up a wiki.
A parallel would the be the stable-testing-unstable set up in Debian GNU/Linux. Debian developers upload new versions of their packages to the unstable branch, and if the package doesn’t get updated for a set time – I think it’s 2 weeks – it gets automatically to “testing”. Every once in a while (OK, a great while), after a freeze and a waiting period, all the testing packages are moved to “stable”.
This is probably too much for a wiki page, but maybe just a stable-unstable division. People normally see the “stable” version, with some kind of link to the “unstable” version – and an indicator to say if anything’s happened on the unstable version lately.
Some times, when you do a lot of work on a wiki, you want to do a whole lot of work over a number of pages, and even revisit pages that you’ve already edited. You want to make sure that people can still perform this sort of “rapid fire work.”
You should have the option, when editing a page, of writing over the “delayed” version of the page, or the “presented” version of the page (which would overwrite the existing “delayed” version of the page.)
You may want to require the editor to review the delayed version, before allowing them to overwrite it. (That is, show the user both versions of the page, and then asking which to edit.)
Whoever writes a delayed version of a change should probably see the changes commit immediately, with the option to see the version of the page everyone else sees. Maybe a note at the top of the page saying, “This page reflects your edits, which will be seen by everybody in 4 hours and 35 minutes.”
It can be useful (or at least, humerous) to not let a person know that the page change isn’t universally visible. See UserTargettedParallelUniverse (IdeasToPlace #99).
As far as I know, no wiki implement the complete idea yet.
However, some wiki have implemented delayed deletes.