Food Generator

The Food! Factory


Food.jar {[output_format_options]} {[release_options]} {[validation_options]} {[pdf_handling_options]}


The Food Generator processes the recipes and contents and generates various formats of my cookbook called Food!. It's a Java application which, besides creating the various formats, like PDF, HTML and ePub, does consistency checkings and versioning.

The recipes are stored in a XML format - the Food Markup Language (FML). The Food Generator converts the recipes to the docbook format using XSLT.

In addition to the generated contents, there are manually edited contents in the docbook format, like an introduction why I'm writing Food! or information how I came to use the domain food-dictator.

A central docbook document combines the manually edited and generated content. Various output formats are generated using a customized set of docbook-xsl stylesheets and the accompanying tool chain consisting of XSLT processor, Apache FOP, etc.


Food Generator uses command line options to define configuration options to control settings, such as output formats, release options and validation settings. Command line options can appear in any order.

Output Format Options

The options below configure which output formats are generated. If none of the output format options is set, then all formats are generated.
-e, --epub
Generate an eBook version in the open ePub format.
-p, --pdf
Generate a PDF version.
-h, --html
Generate a HTML version - more precisely XHTML1.1.

Release Options

The options below define configuration for generating releases and deploying to the server.
-r, --release
An official release will be created and stored in a versioned directory. The revision history needs to be filled for this version and all recipes and contents need to be committed to the GIT repository. If this option is not set a draft version of Food! will be generated, where less restrictions apply.
-d, --include-drafts
Contents in draft status will be included during generation. This is only valid if release option is not set.
-l, --deploy
After generation the output is uploaded to the server via FTP.

Validation Options

-w, --w3c
Skip HTML validation via w3c tooling (Nu HTML Checker & Jigsaw) as this takes a significant amount of time.

PDF Handling Options

The options below are for convenience purposes when working with the PDF format.
-x, --close
On Windows platforms the PDF version can only be written when not currently open. On Windows platforms this option will trigger Food Generator to close the PDF.
-o, --open
Open the PDF after generation.

Detailled Description


See also

Food Dictator