1.0.11 • Published 11 months ago

hbsr v1.0.11

Weekly downloads
1
License
ISC
Repository
github
Last release
11 months ago

hbsr

NodeJS package providing methods for rendering Handlebars templates from string and template file.

GitHub code size in bytesAsk me anything

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:

Dear {{{firstName}}}:

I am looking forward so seeing you on {{{date}}}!

Sincerely,

{{{author}}}

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