1.0.12 • Published 7 months ago

hbsr v1.0.12

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

hbsr

Render Handlebars templates seamlessly from strings or files.

GitHub code size in bytesnpm Node.js CI GitHub license npm GitHub issues CodeFactor Maintainability

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'})

Author

Ion Gireada - shytiger@yahoo.com

Licensing

This package is released under the MIT License.