LiveWiki

LiveWiki is a practical, intranet-oriented WikiWikiWeb concept that would have the following feature set:

  • No CamelCase - we'd use case-InSeNsItIvE links instead
  • HTML subset for markup
  • XML storage
  • Versioning
  • Page ACLs (drwxrwxrwx-like, with d being reserved for sysadmin override)
  • Comments
  • Attachments - each attachment a named Wiki node, referenced by {attachment name} or similar markup
  • Some sort of basic rendering pipeline (for applying stylesheets or filters to the page contents,scaling,etc.)
  • Built-in "World Domination" button.

Davi's Notes:

  • PHP!
  • With directories (http://livewiki.org/davi/weblog/20030101.html)
  • Permissions - per default, guests can only add comments (unless he is are black-listed)
  • /davi is owned by davi (and created probably by admin) and he chooses to set it written only by him. Permissions are recursive unless redefined - /davi/trash can be writen by everyone, or even written by guests
  • Permissions by user - You say which users can edit that page (and its childs), or everyone
  • Simple markup and xml markup - "View Simple", "View XML" to satisfy normal persons and geeks
  • Markup permissions configurable - for example, guests can use "style markup" (b,i,u), editors can use links, powerusers can include <code> (eval anyone?)
  • DB in filesystem: /davi is $DATA/davi/index.xml, /davi/weblog/20030101 is $DATA/davi/weblog/20030101/index.xml, /davi/imagem com espaços.jpg is $DATA/davi/imagem%20com%20espa%e7os.xml (%e7 might be changed by UTF8 if defined)
  • Private entries - either personal or with access to other users
  • rcs backend (index.xml,v for latest revisions). XXX Must think about binary revisions
  • url extension optional. Either /davi, or /davi/, or /davi.html
  • application generates XML (XXX to be defined) and uses several XSL's for output
  • uses extension for XSL....
  • uses my getResources for virtual-hosting

Filesystem layout (draft)

~user -+--- web <- HTTP-accessible stuff
       |
       +--- etc <- configuration files (site.ini and whatnot)
       |
       +--- xsl <- XSLs and derivatives
       |
       +--- log <- application log file
       |
       +--- cache <- pre-processed stuff (subtree)
       |
       +-+- lib <- PHP code root
         |
         +--core <- core (generic) libraries (debugging, config file parsing, database, etc.)