hx

A miniature web site generator; a spiritual successor to Hobix.

History

Concepts

Filters

Require and Autoload

Hx supports a very limited sort of autoload; when a filter class name is provided in a configuration file, and that class doesn't already exist, Hx will try to require a corresponding library. The name of that library will be derived from the class name; for example, if Hx::Backend::RawFiles is missing, Hx will try to require hx/backend/rawfiles.

Beyond this, you can also manually require additional libraries at load time by listing them in the require section in the configuration file.

Tutorial

A Trivial Static Site

options:

output_dir: site

output:

- filter: Hx::Backend::RawFiles
 options:
   entry_dir: static

A Site With Entries and Indexes

options:

output_dir: site

sources:

entries:
 - filter: Hx::Backend::Hobix
   options:
     entry_dir: entries
 - sort_by: updated
indices:
 input: entries
 filter: Hx::Listing::RecursiveIndex

output:

- input: indices
 filter: Hx::Output::LiquidTemplate
 options:
   extension: html
   template: section
- input: entries
 filter: Hx::Output::LiquidTemplate
 options:
   extension: html
   template: entry
- filter: Hx::Backend::RawFiles
 options:
   entry_dir: static

A Site with Date-Based Archives and an Atom Feed

options:

output_dir: site
template_dir: templates

sources:

entries:
 - filter: Hx::Backend::Hobix
   options:
     entry_dir: entries
 - sort_by: updated
indices:
 input: entries
 filter: Hx::Listing::RecursiveIndex
archives:
 input: entries
 filter: Hx::Listing::DateArchive
 sort_by: id

output:

- input: indices
 only: index
 filter: Hx::Output::LiquidTemplate
 options:
   extension: html
   template: front
- input: indices
 except: index
 filter: Hx::Output::LiquidTemplate
 options:
   extension: html
   template: section
- input: entries
 filter: Hx::Output::LiquidTemplate
 options:
   extension: html
   template: entry
- input: archives
 only: */index
 filter: Hx::Output::LiquidTemplate
 options:
   extension: html
   template: year 
- input: archives 
 only: */*/index
 filter: Hx::Output::LiquidTemplate
 options:
   extension: html
   template: month
- input: indices
 only: index
 filter: Hx::Output::LiquidTemplate
 options:
   extension: atom
   template: feed
- filter: Hx::Backend::RawFiles
 options:
   entry_dir: static

Copyright (c) 2009-2011 MenTaLguY. See LICENSE for details.