Hua logo

A Simple Static Content Generator

Hua Basics

Hua (simplified Chinese for flower) is a simple, feature-rich, static content generator useful for maintaining blogs and web sites with templates. It was initially developed by Just Right UX as an in-house blogging tool, and has sufficiently matured for general blog and web site usage. Check out the Just Right UX blog to see an example of Hua in action.

Hua is written in the Ruby scripting language and was inspired in part by the venerable Perl-based blogging tool Blosxom and similar static content generators. Simplicity is one of its core principles: the database containing blog entries, the blog content, includes, and template files are maintained in plain text. Comments are provided through a through a third-party engine like Disqus or IntenseDebate. In keeping with the principle of simiplicity, Hua requires no external Ruby libraries, is small in size, and runs on any modern OS. Hua is open source software (MIT License) and its codebase is hosted on GitHub.

Requirements

Hua requirements are minimal: It will run an any modern OS with a Ruby installation. Hua has been developed and tested on the following platforms:

Downloading

Hua is hosted on GitHub, where you can clone or download the Git repository.

Using Hua

Hua is run from the command line by specifying the Hua script and config file. For example: user@host: ~/Documents/hua ./hua.rb hua.cfg. An example site (config file, entries file, and content) is included in the distribution so you can try it out immediately.

Config File

The Hua config file specifies the locations of the support files and variables used by Hua (article meta info, output/content/include directories, URLs).

Entries File

The entries file is a delimited plain-text database of articles. It can be edited with a text editor or a spreadsheet application (provided the plain-text format is preserved). Each line consists of the following fields:

  1. ID: A numeric field. Articles are sorted and presented in descending order using this field.
  2. Title: Appears at the top of the article and is linked to the article's permalink.
  3. File: The filename of the article's template, stored in the content_dir.
  4. Tags: Article-specific tags ("|" delimited). In addition to index and permalink pages, articles appear in the appropriate tag pages.
  5. Date: The date presented with the article. Note: This doesn't control the position of the article on the index and tag pages, ID does that.
  6. Author: Individual or organization name associated with the article.
  7. Contact: Individual or organization email associated with the article.

Errors

Hua is normally silent, so if everything goes well nothing will be output on the command line. Errors will be output in the following situations:

Additional Usage Information

Future & Contributing

Possible future enhancements include:

You can contribute to Hua's development by suggesting improvements, reporting issues, or writing code.