Handlebars + Helpers = Fumanchu
npm install @jaredwray/fumanchu




Handlebars + Handlebars-helpers (helpers are now maintained in this project) combined into a single package. Easily use it as a drop in replacement when using handlebars directly. More than 160 Handlebars helpers in ~20 categories. Helpers can be used with Assemble, Generate, Verb, Ghost, gulp-handlebars, grunt-handlebars, consolidate, or any node.js/Handlebars project. Currently 189 helpers in 20 categories! 🎉
``bash`
npm install @jaredwray/fumanchu --save
To use Handlebars with all the helpers:
` Foo is bar Foo is barjavascript`
import {fumanchu} from '@jaredwray/fumanchu';
const handlebars = fumanchu(); // this will return handlebars with all the helpers
const template = handlebars.compile('{{#if (eq foo "bar")}}
const html = template({foo: 'bar'});
console.log(html); //
It's just that easy! No need to add Handlebars to your project, it's already included.
If you only want to use handlebar helpers you can easily do that by doing the following:
` Foo is bar Foo is barjavascript`
import {helpers} from '@jaredwray/fumanchu';
import handlebars from 'handlebars';
const helpersFunction = await helpers();
helpersFunction({ handlebars: handlebars });
const template = handlebars.compile('{{#if (eq foo "bar")}}
const html = template({foo: 'bar'});
console.log(html); //
If using it with es6 you can access handlebars and helpers:
` Foo is barjavascript`
import {handlebars, helpers} from '@jaredwray/fumanchu';
helpers({ handlebars: handlebars });
const template = handlebars.compile('{{#if (eq foo "bar")}}
const html = template({foo: 'bar'});
console.log(html);
The helper registry allows you to manage and use Handlebars helpers more easily. You can register new helpers, filter existing ones, and access them in your templates.
`js
import { HelperRegistry, handlebars } from '@jaredwray/fumanchu';
const registry = new HelperRegistry();
registry.register('eq', (a, b) => a === b);
registry.register('if', (condition, template) => condition ? template() : '');
const hbs = handlebars;
registry.load(hbs); // Load all helpers into Handlebars
`
If you want to do filtering you can use the HelperFilter on load:
`js
import { HelperRegistry, handlebars } from '@jaredwray/fumanchu';
const registry = new HelperRegistry();
registry.register('eq', (a, b) => a === b);
registry.register('if', (condition, template) => condition ? template() : '');
const hbs = handlebars;
registry.load(hbs, { names: ['if']}); // Load the helpers into Handlebars
`
In addition, we have made the helper functions have a compatibility such as HelperRegistryCompatibility.NODEJS or HelperRegistryCompatibility.BROWSER. This will allow you to filter out based on your environment!
.License and Copyright
MIT and codebase after 2023 will be copyright of Jared Wray.This is a fork of [handlebars-helpers]() which is licensed under MIT. Initial copyright of handlebars-helpers:
2013-2015, 2017, Jon Schlinkert, Brian Woodward. Thank you so much for your effort and building this! We have also continued to list all contributors in package.json` to ensure that they are recognized.