FileWiki

Introduction

Everything is a file!

FileWiki is a simple but powerful web site generator, written in Perl. It parses a directory tree and generates static web pages defined by templates, which make use of variables seeded within the directories.

The idea behind this is that you manage your web site source files on a location which is not accessible by the webserver, and have FileWiki generate and deploy the web site from there. This has several advantages:

  • Flexible content management: By design, FileWiki does not rely on any content management system. You can use any system you like to manage your web site source files.

  • Simplicity: No need of any interpreter (like Java, PHP, Perl, ...) in your web server software. Instead, you can use a lightweight web server, reducing performance requirements on your server.

  • Security: Potential security issues are vastly reduced, as your web server only serves static pages and thus does not inherit vulnerabilities from the interpreter plugins.

HTML Conversion

FileWiki relies on external tools to process source text. The processing steps from the source file to the target page are defined by filter chains.

Web content is composed in text files using a markup language (Markdown, Textile or others). They are converted to HTML using the markup language processor, then processed by Template Toolkit, a very powerful and comprehensive template system. FileWiki provides template plug-ins, e.g. for menu generation in web pages.

Note that it is very easy to add support for other markup languages or template processors.

Motivation

So why another wiki system? All Wikis out there (at least the ones I know of) are either blown-up or not powerful enough. They keep state information in databases while the templates are in files (how the hell am I going to manage/backup this?), and they usually combine the editing and the displaying portion, often relying on PHP which has a long history of security issues.

Keep it simple, Stupid!

The motivation for FileWiki is to have a framework based on a simple concept, leaving all options open in regard of content management systems.

« prev | next »