New Wiki
#400 - 758 hits - created: 2007-01-09 17:18:10 - last modified: 2007-01-14 09:06:55
The new wiki will have some base in pH but will add the following features:
- NTLM authentication (required for Word wiki for user login convenience) using Apache2::AuthenNTLM / mod_auth_sspi
- Don't show login form on the page any more; which means we also need to support digest authentication for home use
- (Possibly) new unambiguous parser using pH, or at least as an option for complex markup (need a list of current markup)
- Full scriptability, handlers, etc. (editable from the pages? either a wiki page or a perl script, with template support)
- All pages have types, which imply a handler which is a component (or module?) with a given interface (import, export, new, etc.).
- A template is a page named Templates:SomeTemplate and is HTML with limited markup (handled by Template::Toolkit?)
- A script is a page with script type; it is a Mason mhtml file handled by Mason/perl
- Handlers for complex types may exist e.g. PDF (probably read-only or replace) or Word (!)
- Regular pages have type wiki, which is parsed by a component (maybe components can be pages?)
- Handlers may be layered, e.g.: template(t, wiki(c)) where c is the content and t is a per-page template name.
- Use the page templates from MoinMoin since they're pretty
- Some wiki links can be snappable: rather than having an MLP-type page, just make the wiki name go directly to the target
- Need to support indexing? look at Xapian
- Current pages (incl. templates and scripts) are stored in a database
- Older revisions are stored in a source code repository (probably svn, since I can make a local one)
- Each handler that allows editing needs to be able to merge if changes take place between viewing and resubmitting
- We can simply reject the user's changes (lousy but simple)
- We can perform a merge of the new and old changes (e.g. with Moby) and send back a document for the user to resolve (possibly leading to another merge if other changes come in)
- If the merge doesn't need user approval, we can accept the changes and return a new page (we could even return the page with unresolved changes, and let anyone do the manual merge).
- Or, we can lock edited pages (or parts thereof) and disallow editing until the first user commits.
- GUI editor? FCKEditor (as used by MoinMoin).
Site design and content copyright ©2003 David B. Robins.
All Rights Reserved. pH?