This is not a page about how we want to change the engine of this wiki, but on a general, good wiki engine to be written by Someone in Scheme.
- Wiki get:
- Get content and act on content-type.
- If "wiki-text": (this condition actually should be extensible!)
- The HTML header is built by calling a list of registered procedures.
- The HTML body header is built by calling a list of registered procedures.
- The HTML body content is built by calling the wiki-text-format procedure.
- The HTML body footer is built by calling a list of registered procedures.
- Give data as untouched binary stream
- Wiki upload: Sets content and content-type (extensible, by default "wiki-text" and "binary")
- Wiki edit: Displays edit box by content type (extensible, by default textare for wiki-text,
replacement file upload for binary)
- Other commands: all pages, recent changes (global, one page), diff, view old, search, preview,
- DB interface returns page objects
- Data should be written out on seperate files to faciliate usage of logrotate (e.g. one file per version change as in PagesAsBundles)
- Page access restriction: Per-content, per-IP, per-host
- "surge protection"
- Simple extensibility (e.g. oddmuse modules) for everything the wiki does (e.g. new formatting directives; ideally, those should be in modules!)
- Extensiblity through the wiki itself (see comment below)
- "Minor Edits" - things that you can disable being shown on the RC. NOT something that can remove changes from RC!
- Revision control for pages and Recent Changes (of course)
- Diffs for page edits (of course)
- DeletedPage support
- Username (preferably stored only via cookie)