WebMake is a simple content management system, based around a templating system for HTML documents and an emphasis on page generation.
What makes it different from the many other templating engines out there, is that it's been designed to have lots of built-in smarts about what a "typical" informational website needs in the way of functionality: metadata support, dynamic index generation from metadata, automatically-generated sitemaps and navigational aids, user-defined tags, and support for non-HTML input and output -- and, of course, embedded Perl code. ;)
It's written in Perl, and is distributed under the GPL.
Features
*Creates portable sites: It requires no dynamic scripting capabilities on the server; WebMake sites can be deployed to a plain old FTP site without any problems.
*No need to edit lots of files: A multi-level website can be generated entirely from 1 WebMake file containing content, links to content files, perl code (if needed), and output instructions.
*Efficient: WebMake supports dependency checking, so a one-line change to one source file will not regenerate your entire site -- unless it's supposed to. Only the files that refer to that chunk of content, however indirectly, will be modified.
*Supports content conversion, on the fly: Text can be edited as standard HTML, converted from plain text (see below), or converted from any other format by adding a conversion method to the WebMake::FormatConvert module.
*Edit text as text, not as HTML: One of the built-in content conversion modules is Text::EtText, which provides an easy-to-edit, easy-to-read and intuitive way to write HTML, based on the plain-text markup conventions we've been using for years.
*Scriptable: Content items and output URLs can be generated, altered, or read in dynamically using perl code. Perl code can even be used to generate other perl code to generate content/output URLs/etc., recursively.