Skip to content
Generates files from various templates and inputs
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
templates
test
.gitignore
LICENSE
README.md
maker.js
package.json
test.js

README.md

maker

maker is a general purpose text file templating engine. Use it to create text files programmatically.

Installation

npm install maker

maker scans a directory for a collection of templates, and allows you to select and fill out those templates as needed.

Here's an example template, lets say we save it as 'myTemplate.tpl'

//////////////////////////////////////////////////////////////////////////
// ~~comment~~
function ~~functionName~~( ~~arguments~~ ) {
    ~~contents~~
} // end ~~functionName~~()

The template is a copy of the code you're trying to output with the variables and custom names replaced with template strings. The default separation string is ~~, but it can be changed to anything by using the optional argument to the maker constructor.

Here's a basic usage example

var maker = require("maker").createMaker();

// Load all template files (.tpl) within some directory
maker.loadTemplateDir( "./templates", function( templates ) {

    // Grab a copy of the templates we want to use
    var myTemplate = maker.getTemplate( "myTemplate" ),
        myOtherTemplate = maker.getTemplate( "myOtherTemplate" );

    // Fill out our templates with contents
    myTemplate.comment = "comment stuff";
    myTemplate.functionName = "SomeFunction";
    myTemplate.arguments = "";
    myTemplate.contents = "console.log('test');";

    myOtherTemplate.someThing = "someOtherThing";

    // Create an array of templates in the order that 
    // we want them to appear in the file
    fileTemplates = [];
    fileTemplates.push( myTemplate );
    fileTemplates.push( templates["myOtherTemplate"] );

    // Write the file
    maker.makeFile( "./testOutput.js", fileTemplates );
}

Ignoring the unspecified template 'myOtherTemplate', This script would render myTemplate.tpl as the following

//////////////////////////////////////////////////////////////////////////
// comment stuff
function SomeFunction() {
    console.log('test');
} // end SomeFunction()
Something went wrong with that request. Please try again.