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 © 2009-2011 MenTaLguY. See LICENSE for details.