© 2014 RoboterHund
Note:
- Still in early development stage. Things may change.
- XML and HTML output was removed in 0.3.1 – moved to april1-html.
April1 is a general-purpose, extensible template engine for the Node.js platform.
Main characteristics:
- Not coupled to any syntax. Templates are defined in plain JS. The extremely simple data structures can be (de)serialized by other packages.
- Separate components. Designed for easy overriding without breaking other parts, thanks to a well-defined set of constraints.
This is the core module. It provides basic functionality for more specialized modules.
Simple example:
var A = require ('april1');
var template = A.template (
'Hello, ',
A.insert ('who'),
'.',
A.list (
'then',
' ',
A.insert ('item'),
'.'
)
);
The above code creates a reusable template.
Values are supplied afterwards:
var values = {
who: 'World',
then: [
{ item: 1 },
{ item: 2 },
{ item: 3 }
]
};
Now, the function call A.string (template, values)
would by default return this string:
Hello, World. 1. 2. 3.
By default.
The test
folder contains a test script. It is rudimentary, but has good coverage.
0.2.2
This is the last version to include support for XML and HTML generation.
0.3.1
Complete redesign.
- Reduced main module to core functions.
- More flexibility, more exported functions, simpler components.
0.3.2 - 0.3.3
Redesign of common
module, to facilitate extension.
README update with link to april1-html
.
0.4.1
Templates are also nodes.
Less classes.
Removed the concept of 'template builder state'.
0.4.2 - 0.4.3
Node processing (modules.dispatch
) is now more flexible:
- The key to retrieve the dispatch table is no longer hard-coded. (
.2
) - The dispatch table can be passed directly as argument. (
.3
) - Added function to process single node instead of array. (
.3
)
0.4.4 - 0.4.5
Customizable template builder initialization. (.4
)
Custom initialization propagated to sub-builders. (.5
)
RoboterHund
2014-08-10