hb-interpolate-helpers
v1.0.5
Published
Interpolate a json file through a Handlebars template file (with optional helpers) to stdout.
Downloads
2
Maintainers
Readme
hb-interpolate-helpers
Interpolate a json file through a Handlebars template file to stdout.
Contents
About
hb-interpolate-helpers
(based on hb-interpolate
) is a very simple command line tool that reads a .json
file and a Handlebars template file, and then writes the implied interpolation to stdout. This project was forked from
hb-interpolate
, and adds the ability to pass in an optional Handlebars helpers file.
Usage
$ hb-interpolate-helpers --help
Usage: hb-interpolate-helpers [options]
Options:
-f, --file Handlebars helpers file
-h, --help Output usage information
-j, --json [path] JSON file with input data
-t, --template [path] Handlebars template to interpolate
-n, --noEscape Don't do HTML escaping
If the JSON file is a package.json, read-package-json is used to read the file.
Note that read-package-json normalizes some fields.
`--json [path]` and `--tempate [path]` are REQUIRED.
Notes
- The
--json [path]
and--template [path]
arguments are required. - If the basename of the json path is
package.json
,hb-interpolate-helpers
uses the node package read-package-json to read the file, which normalizes some fields, in particular all people fields. Any other JSON file is returned directly as read. - The
--noEscape
option may be used to turn off Handlebars HTML escaping. - The
--file
option may be used to add in a Handlebars helpers file.
Handlebars Helpers File
The optional Handlebars helpers file enables you to add your own customized helpers that enable you to add
more complex logic to Handlebars template processing. Here's how to create a Handlebars Helpers file (written in JavaScript) to work with hb-interpolate-helpers
:
- Create helper functions. There's no need to export these functions - just keep them internal.
- Create and export method called
registerHelpers()
that takes a Handlebars object as a parameter.- Use the module exports mechanism from Node.js.
- Register all your helpers with the
Handlebars.registerHelper()
method. You can register each helper by name or with a single object. hb-interpolate-helpers
has already initialized the Handlebars object, so you only need to callregisterHelpers()
. Also, there's no need to do arequire()
on Handlebars or setup a Node.js project withpackage.json
.
Further Information on Handlebars Helpers and Node.js Modules
Please see the following for more information:
- Here's a sample Handlebars helpers file that follows the above instructions and integrates with
hb-interpolate-helpers
- testHelpers.js.- This project's
test.sh
script shows an example of how to use the helpers file.
- This project's
- For more information on how
registerHelpers()
works, please see the Handlebars API Reference. - The
registerHelpers()
method enables the developer to extend this utility. This follows the principle of Inversion of Control. - To learn more about Node.js modules, please see SitePoint's excellent article on Understanding module.exports and exports in Node.js.
References
TOC generated by md-toc.