FMPP 0.9.11 review

by on

FMPP is a general-purpose text file preprocessor tool that uses FreeMarker templates

License: BSD License
File size: 0K
Developer: Daniel Dekany
0 stars award from

FMPP is a general-purpose text file preprocessor tool that uses FreeMarker templates. FMPP project is particularly designed for HTML preprocessor, to generate complete (static) homepages: directory structure that contains HTML-s, image files, etc.

But of course it can be used to generate source code or whatever text files. FMPP is extendable with Java classes to pull data from any data sources (database, etc.) and embed the data into the generated files.

FMPP can be used with UN*X-style command-line interface, or as Ant task, or you can embed it into your Java application.

FMPP is 100% Java, thus it runs on all modern mirrroplatforms (Windows, "Linux", Mac OS X, Solaris, ...etc.).

FMPP is Free software.

Here are some key features of "FMPP":
Preprocessor language (it is the FreeMarker Template Language):
All the usual template constructs, such as include, if/else/elseif, loop.
Macros with named arguments and nested content (body).
Variables (global, or local for a macro call)
Complex expressions using string, arithmetical and logical operations. Extensible with custom functions.
Automatic and manual escaping (HTML, XML, custom function)
Transforming (filtering) blocks of output; extensible with custom transformations in Java.
Capturing block of output into a variable.
Charset aware, internally uses UNICODE.
Number and date/time formatting with masks (patterns). Locale sensitive number and date/time formatting.
Bulk file processing:
Process entire directories recursively.
Different file processing mode can be chosen for each file, based on path patterns (as file extension): execute file as template, or parse it as XML and then render it to output with a template, or binary-copy it, or ignore it.
Can ignore bad source files and log the error message into a text file.
Can guarantee that certain files will be processed later than others.
You can expose data from arbitrary data sources be writing extensions in Java. Currently out-of-the-box supported data sources:
XML file
CSV and tab-separated text files
Java properties file
Ant properties, Ant project and target information
System clock
Plain text file
Other highlighted features:
Output splitting: a single source file can generate multiple output files (including 0 output files).
Automatic file inclusion, automatic escaping, and whatnot that can be done with automatically inserted headers and footers, chosen based on path patterns.
Generate HTML -s with calculated width and height.
Calculate the relative path to the home directory, or to any other file.
Rendering (transforming) XML files with FreeMarker templates. (Similar to the typical XSLT usage pattern.)
Query the size/existence of source files.
Query output encoding (charset).
URL-escaping (with the actual output charset).

What's New in This Release:
This release fixes a bug with the "sources" setting that mostly caused problems for the FMPP Ant task.
The new "tagSyntax" setting of FreeMarker 2.3.5 is now supported.

FMPP 0.9.11 search tags