Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    april1public

    April1

    © 2014 RoboterHund

    Note:

    1. Still in early development stage. Things may change.
    2. 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.


    unit tests

    The test folder contains a test script. It is rudimentary, but has good coverage.


    versions

    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

    Keywords

    none

    install

    npm i april1

    Downloadsweekly downloads

    28

    version

    0.4.5

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar