Go to file
kts of kettek c26af35ac4 Added basic ETag caching support. Works via stat mtime, but this is inefficient. A better solution would be to assume the '*/upload' act as the primary means of file changing and generate CRC32-based ETags on upload act. Full server reloading would likely clear this cache unless the currently unused 'index.json' (should be renamed) had a cache(d) files section. 2015-10-11 15:20:45 -07:00
wiki Initial commit of QWiki. Currently uses markdown as default (and cannot be changed outside of system code). Lacking some functionality. Needs to split into multiple component/module files, such as QCore and QWiki. 2015-10-11 15:09:43 -07:00
.gitignore Initial commit of QWiki. Currently uses markdown as default (and cannot be changed outside of system code). Lacking some functionality. Needs to split into multiple component/module files, such as QCore and QWiki. 2015-10-11 15:09:43 -07:00
README.md Initial commit of QWiki. Currently uses markdown as default (and cannot be changed outside of system code). Lacking some functionality. Needs to split into multiple component/module files, such as QCore and QWiki. 2015-10-11 15:09:43 -07:00
index.html Initial commit of QWiki. Currently uses markdown as default (and cannot be changed outside of system code). Lacking some functionality. Needs to split into multiple component/module files, such as QCore and QWiki. 2015-10-11 15:09:43 -07:00
index.js Added basic ETag caching support. Works via stat mtime, but this is inefficient. A better solution would be to assume the '*/upload' act as the primary means of file changing and generate CRC32-based ETags on upload act. Full server reloading would likely clear this cache unless the currently unused 'index.json' (should be renamed) had a cache(d) files section. 2015-10-11 15:20:45 -07:00
package.json Initial commit of QWiki. Currently uses markdown as default (and cannot be changed outside of system code). Lacking some functionality. Needs to split into multiple component/module files, such as QCore and QWiki. 2015-10-11 15:09:43 -07:00

README.md

QWiki 2015-10-11 14:55:35

QWiki is a simple wiki design implemented in node.js.

Installation

  • npm install
  • node index.js [--port=7331]

Impetus

  1. straight-forward and small wiki
  2. no database requirements
  3. easy to deploy

Designs

  1. filesystem database
  2. actions based on request paths ("my_page/edit", "my_page/delete", etc.) rather than queries
  3. HTML customization via "style.css" in wiki root and "index.html" template in QWiki root.
  4. extendable wiki page formats such as markdown, html, or others

Components

  • QCore
    • limited HTTP server that handles POST data, mimetypes, page templating, etc.
    • handles templating rules and page actions
    • QParse
      • object that holds data related to generating a page from page templating
  • QWiki
    • inherits from QCore
    • handles page saving, cache generation, formatting, and similar