hbsr
NodeJS package providing methods for rendering Handlebars templates from string and template file.
Table of Contents
Installation
npm i hbsr
Usage
With a string template
const hbsr = require('hbsr');
let source = `
Dear {{{firstName}}}:
I am looking forward so seeing you on {{{date}}}!
Sincerely,
{{{author}}}
`;
let data = {
firstName: "John",
date: "Nov 26, 1962",
author: "Jill"
}
let result = hbsr.render(source, data);
console.log(result);
With a template file
Create templates/letter.hbs
with the following content:
Create sample.js
like this;
const hbsr = require('hbsr');
let data = {
firstName: "John",
date: "Nov 26, 1962",
author: "Jill"
}
let templateBasename = 'letter';
let result = hbsr.render_template(templateBasename, data);
console.log(result);
Template options
Template options reside in hbsr.options
property:
Option | Description | Default |
---|---|---|
template_path |
Folder where template files reside |
./templates -- relative to scripts execution location |
template_extension |
Template file extension |
.hbs -- extension added to basename parameter |
const hbsr = require('hbsr');
// displays ./templates
console.log(hbsr.options.template_path);
// displays
console.log(hbsr.options.template_extension)
Override default template options to match your preferences:
const hbsr = require('hbsr');
hbsr.options.template_path = '../../templates'; // templates reside two levels up inside template folder
// Set the new default template file extension to append to basename
// hbsr.options.template_extension = '.handlebars'
let data = {};
let r = hbsr.render_template('page', data); // use the ../../templates/page.hbs template
Using extra parameter to specify template options to match your preferences:
const hbsr = require('hbsr');
let data = {};
// Specify the template_path to in this instance
// and use the default template extension
let r = hbsr.render_template('page', data, {'template_path': '../../templates'})
Licensing
This package is released under the MIT License