How to use the handlebars.registerHelper function in handlebars

To help you get started, we’ve selected a few handlebars examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github davidedantonio / create-fastify-app / lib / handlebars.js View on Github external
const Handlebars = require('handlebars')

Handlebars.registerHelper('toLowerCase', value => {
  return value.toLowerCase()
})

Handlebars.registerHelper('json', context => {
  if (!context) {
    return JSON.stringify({})
  }

  return JSON.stringify(context, null, 2)
})

Handlebars.registerHelper('transformToArray', arr => {
  return `'${arr.join('\',\'')}'`
})

Handlebars.registerHelper('validMethod', (method, options) => {
  const authorizedMethods = ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS', 'PATCH']

  /* eslint-disable no-undef */
  if (arguments.length < 3) {
    throw new Error('Handlebars Helper validMethod needs 1 parameter')
  }
  /* eslint-enable no-undef */

  if (authorizedMethods.indexOf(method.toUpperCase()) === -1) {
    return options.inverse(this)
  }
github cliqz-oss / browser-core / modules / core / sources / templates.es View on Github external
} else {
          return Handlebars.helpers.local("calculator");
        }
    });


    Handlebars.registerHelper('ifShowSearch', function(results, options) { // if equal
      if(!results[0] || results[0].data.template !== "noResult") {
        return options.fn(this);
      } else {
        return options.inverse(this);
      }
    });


    Handlebars.registerHelper('mobileWikipediaUrls', function(url) {
        return url.replace("http://de.wikipedia.org/wiki","https://de.m.wikipedia.org/wiki");
    });

    Handlebars.registerHelper('eachIncludeParent', function ( context, options ) {
        var fn = options.fn,
            inverse = options.inverse,
            ret = "",
            _context = [];

        $.each(context, function (index, object) {
            var _object = $.extend({}, object);
            _context.push(_object);
        });

        if ( _context && _context.length > 0 ) {
            for ( var i = 0, j = _context.length; i < j; i++ ) {
github MeoMix / StreamusChromeExtension / src / js / common / shim / handlebars.helpers.shim.js View on Github external
import Handlebars from 'handlebars';

// Provide handlebars with the ability to look up a model's attributes from within a template.
Handlebars.registerHelper('get', function(model, attribute) {
  return model.get(attribute);
});

Handlebars.registerHelper('ternary', function(test, yes, no) {
  return test ? yes : no;
});

Handlebars.registerHelper('i18n', function(messageName) {
  var message = chrome.i18n.getMessage(messageName);

  if (message === '') {
    throw new Error('Failed to find message: ' + messageName);
  }

  return chrome.i18n.getMessage(messageName);
});
github HackGT / registration / server / routes / templates.ts View on Github external
return selected[index] ? "selected" : "";
});
Handlebars.registerHelper("enabled", (isEnabled: boolean) => {
	// Adds the "disabled" form attribute if the element should be disabled
	return !isEnabled ? "disabled" : "";
});
Handlebars.registerHelper("slug", (input: string): string => {
	return encodeURIComponent(input.toLowerCase());
});
Handlebars.registerHelper("numberFormat", (n: number): string => {
	return n.toLocaleString();
});
Handlebars.registerHelper("toLowerCase", (n: number): string => {
	return n.toString().toLowerCase();
});
Handlebars.registerHelper("toJSONString", (stat: StatisticEntry): string => {
	return JSON.stringify(stat);
});
Handlebars.registerHelper("removeSpaces", (input: string): string => {
	return input.replace(/ /g, "-");
});
Handlebars.registerHelper("join", (arr: T[]): string  => {
	return arr.join(", ");
});
for (let name of ["sidebar", "login-methods", "form"]) {
	Handlebars.registerPartial(name, fs.readFileSync(path.resolve(STATIC_ROOT, "partials", `${name}.html`), "utf8"));
}

templateRoutes.route("/dashboard").get((request, response) => response.redirect("/"));
templateRoutes.route("/").get(authenticateWithRedirect, async (request, response) => {
	let user = request.user as IUser;
github abecms / abecms / src / cli / controllers / Page.js View on Github external
// HOOKS beforePageJson
    json = Hooks.instance.trigger('beforePageJson', json)

    Handlebars.registerHelper('abe', compileAbe) // HandlebarsJS unique text helper
    Handlebars.registerHelper('i18nAbe', translate) // HandlebarsJS unique text helper
    Handlebars.registerHelper('math', math) // HandlebarsJS unique text helper
    Handlebars.registerHelper('moduloIf', moduloIf) // HandlebarsJS helper for modulo test
    Handlebars.registerHelper('testObj', testObj) // 
    Handlebars.registerHelper('attrAbe', attrAbe) // 
    Handlebars.registerHelper('printJson', printJson)
    Handlebars.registerHelper('printBlock', printBlock)
    Handlebars.registerHelper('className', className)
    Handlebars.registerHelper('cleanTab', cleanTab)
    Handlebars.registerHelper('slugify', handlebarsHelperSlugify({Handlebars: Handlebars}).slugify)
    Handlebars.registerHelper('printConfig', printConfig)
    Handlebars.registerHelper('ifIn', ifIn)
    Handlebars.registerHelper('ifCond', ifCond)
    Handlebars.registerHelper('abeImport', abeImport)
    Handlebars.registerHelper('listPage', listPage)
    HandlebarsIntl.registerWith(Handlebars)

    Hooks.instance.trigger('afterHandlebarsHelpers', Handlebars)

    let util = new Util()
    let intlData = config.intlData

    text = this._removeHidden(text)
    text = this._addAbeTag(text)

    abeEngine.instance.content = json

    // var pattNode = />({{abe.*?type=[\'|\"][text|rich|textarea]+[\'|\"][\s\S].*?}})/g,
github machinelearnjs / machinelearnjs / docs / processor / index.ts View on Github external
filterByKind(children, options, consts.kindStringProperty),
);

Handlebars.registerHelper('filterTagExample', (children, options) =>
  filterByTag(children, options, consts.tagTypeExample),
);

Handlebars.registerHelper('constructParamTable', (parameters) => constructParamTable(parameters));

Handlebars.registerHelper('renderMethodReturnType', (type) => renderMethodReturnType(type));

Handlebars.registerHelper('methodBracket', (parameters) => renderMethodBracket(parameters));

Handlebars.registerHelper('getSourceLink', (sources) => renderSourceLink(sources));

Handlebars.registerHelper('newLine', renderNewLine);

Handlebars.registerHelper('cleanHyperLink', (str) => cleanHyperLink(str));

// Processors
const apiProcessor = new APIProcessor();
apiProcessor.run(Handlebars);

const pagesProcessor = new PagesProcessor();
pagesProcessor.run();

const exampleProcessor = new ExampleProcessor();
exampleProcessor.run(Handlebars);

const configProcessor = new ConfigProcessor();
configProcessor.run({ apiChildren: apiProcessor.apiChildren });
github future-architect / cheetah-grid / packages / docs / scripts / handlebars / helpers.js View on Github external
Handlebars.registerHelper('highlightjs', function(...args) {
		const arg = analyzeArguments(...args);
		const context = arg.get(this);
		const option = Object.assign({'class': 'js'}, arg.hash);

		const result = highlightjs.highlight(option.class, context, true);

		return `\n${result}`;
	});


	Handlebars.registerHelper('wrapscript', function(...args) {
		const script = Handlebars.helpers.babel.call(this, ...args);
		return `//wrapscript\n(function() {\n${script}\n})();`;
	});
	Handlebars.registerHelper('code', function(...args) {
		const arg = analyzeArguments(...args);
		const option = Object.assign({class: 'js'}, arg.hash);
		option.code = arg.get(this);
		let template;
		if (typeof Handlebars.partials.code !== 'function') {
			template = Handlebars.compile(Handlebars.partials.code);
		} else {
			template = Handlebars.partials.code;
		}

		return new Handlebars.SafeString(template(option));
	});
	Handlebars.registerHelper('json', function(...args) {
		const arg = analyzeArguments(...args);
		const code = arg.get(this);
		const result = JSON.parse(code);
github vitalets / x-editable / generator / helpers.js View on Github external
//each property helper
Handlebars.registerHelper('eachProperty', function(context, options) {
    var ret = "";
    for(var key in context) {
        ret = ret + options.fn({key: key, value: context[key]});
    }
    return ret;
});

//markdown
Handlebars.registerHelper('md', function(string) {
    return string ? new Handlebars.SafeString(marked(string)) : '';
});

//markdown block
Handlebars.registerHelper('mdb', function(options) {
    return new Handlebars.SafeString(marked(options.fn(this).trim()));
});

//source
Handlebars.registerHelper('source', function(options) {
  var out = '<pre class="prettyprint linenums">' + (Handlebars.Utils.escapeExpression(options.fn(this))).trim() + '</pre>';
  return new Handlebars.SafeString(out);
});

//since
Handlebars.registerHelper('since', function() {
    if(this.since) {
       return new Handlebars.SafeString('<div style="text-align: left"><span style="font-size: 0.8em" class="muted">since '+ this.since +'</span></div>');
    }
});
github joyent / sdc-adminui / www / js / views / package.js View on Github external
var TraitsEditor = require('./traits-editor');
var PackageTemplate = require('../tpl/package.hbs');

var NotesComponent = React.createFactory(require('../components/notes'));

var Handlebars = require('handlebars');
Handlebars.registerHelper('normalize', function (v) {
    v = Number(v);
    if (v % 1024 === 0) {
        return _.str.sprintf('%d GB', v / 1024);
    }

    return _.str.sprintf('%d MB', v);
});

Handlebars.registerHelper('ifeq', function (a, b, options) {
    if (a == b) { return options.fn(this); }
    return options.inverse(this);
});

Handlebars.registerHelper('ifnoteq', function (a, b, options) {
    if (a != b) { return options.fn(this); }
    return options.inverse(this);
});


var PackageVersions = Backbone.Marionette.CompositeView.extend({
    template: require('../tpl/package-versions.hbs'),
    attributes: {
        'id': 'package-versions'
    },
    itemView: Backbone.Marionette.ItemView.extend({
github apache / ranger / security-admin / src / main / webapp / templates / helpers / XAHelpers.js View on Github external
return options.inverse(this);
	});
	Handlebars.registerHelper('getAvatar', function(options,size) {
		var path;
			if(_.has(options,'profileImageGId')){
				if(_.isUndefined(size)) 
					path = "service/content/multimedia/image/"+options.profileImageGId;
				else
					path = "service/content/multimedia/image/"+options.profileImageGId+"/small";
			}else{
				path = "styles/images/s-avatar.png";
			}
		return path;
	});

	Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {

		switch (operator) {
			case '==':
				return (v1 == v2) ? options.fn(this) : options.inverse(this);
			break;
			case '===':
				return (v1 === v2) ? options.fn(this) : options.inverse(this);
			break;
			case '&lt;':
				return (v1 &lt; v2) ? options.fn(this) : options.inverse(this);
			break;
			case '&lt;=':
				return (v1 &lt;= v2) ? options.fn(this) : options.inverse(this);
			break;
			case '&gt;':
				return (v1 &gt; v2) ? options.fn(this) : options.inverse(this);