Regenerate and Propolize

12 June 2013


Regenerate is an experimental static website generator. It's most experimental aspect is that it can be used to re-generate HTML files in-place, which may or may not be a good idea. It does however have an alternative mode of operation (which I currently use for all my websites) which is to generate from source files to separate output files, and, optionally, to regenerate source files from edited output files (where that is practical).

The basic idea of Regenerate is that an HTML (or XML) source page is both a valid HTML page and a representation of a Ruby object which defines the data which will be used to generate (or "regenerate") the output file. To make this work, there are special defined HTML comment lines which either delineate or contain Ruby-related components in the page, in particular:

Regenerate is available as a Ruby gem, and its official source page is at


Propolize is a content-generator which uses a somewhat Markdown-like syntax to generate content for Propositional Writing (which see).

It is available as a Ruby gem, and its official source page is at

Sample Code

Currently neither the Regenerate or Propolize code bases contain test examples.

However, this very website is generate using both gems, and I have include a partial snapshot of the source code (and corresponding output files) in

To run the examples, do the following:

Executing the final command should regenerate the partial website without any errors.

A configuration option "checkNoChanges" is set to true in the .regenerate.rb script which causes it to validate that output files are regenerated without any changes. This option can be set to false (or just commented out) if you wish to experiment with making changes in the source files.

The regenerate command can also be run on source directories or individual files, e.g. thinkinghard-partial-snapshot/src/blog or thinkinghard-partial-snapshot/src/blog/BiologyOfMorality.html.

Regenerate can also be run on some output directories or files, but only on those which can be un-regenerated, which for the moment is just those files that have no special Regenerate source code, and are therefore "generated" by direct copying to the corresponding output directory.