Atom for Wikis
With the recent upspike in interest in Atom for Wiki's, I just thought I would jot down a few thoughts on the subject:
- The Wiki edit model more closely corresponds to using HTTP PUT for creating new pages. In other words, the client determines the URL. Some webloginging systems support this, though more commonly the server determines the URL. However, I do expect that having the client specifying the URL will become more common with photoblogs and other mechanisms involving images. I suspect that some additional information should be added to the introspection file so that clients can determine server policies and capabilities in this reguard.
- MoinMoin inserts a hidden "datestamp" form field on HTTP POST to ensure that people don't overwrite each other's changes. I believe that other wiki software employs similar tactics. What this would correspond to in Atom is requiring that the atom:modified date be echoed back on the POST request. If it doesn't match, the request is rejected. This should be spelled out in the API.
- This is fairly obvious, but needs to be spelled out: the syntax for editing Wikis not the syntax used for display. This means that there needs to be separate mechanisms for retrieving either the original source vs the formatted source. This can be achieved as simply as having different URLs for each function.