Skip to content

Instantly share code, notes, and snippets.

@meesterdude
Last active April 30, 2021 09:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save meesterdude/403319a079828497bff7c4f52e7451d3 to your computer and use it in GitHub Desktop.
Save meesterdude/403319a079828497bff7c4f52e7451d3 to your computer and use it in GitHub Desktop.
installing handlebars-helpers in ghost
// installing handlebars-helpers for V3 of ghost platform (current as of version 3.37)
// in your ghost install directory, run `yarn add handlebars-helpers` to install the package
// in your project directory of versions/YOUR_VERSION/core/frontend/helpers/index.js
// change L4 to be
// const helpers = require('handlebars-helpers')();
// on production server, edit versions/YOUR_VERSION/node_modules/gscan/lib/spec.js
// remove the method body but keep the theme return value; without this change, themes using custom helpers will fail gscan
// and make your theme unable to be activated.
// in your project directory of versions/YOUR_VERSION/core/frontend/services/themes/handlebars/helpers.js
// add the following or only the ones you need
// handlebars-helpers
registerThemeHelper('blockHelperMissing', coreHelpers.blockHelperMissing);
registerThemeHelper('each', coreHelpers.each);
registerThemeHelper('helperMissing', coreHelpers.helperMissing);
registerThemeHelper('if', coreHelpers.if);
registerThemeHelper('unless', coreHelpers.unless);
registerThemeHelper('log', coreHelpers.log);
registerThemeHelper('lookup', coreHelpers.lookup);
registerThemeHelper('with', coreHelpers.with);
registerThemeHelper('after', coreHelpers.after);
registerThemeHelper('arrayify', coreHelpers.arrayify);
registerThemeHelper('before', coreHelpers.before);
registerThemeHelper('eachIndex', coreHelpers.eachIndex);
registerThemeHelper('filter', coreHelpers.filter);
registerThemeHelper('first', coreHelpers.first);
registerThemeHelper('forEach', coreHelpers.forEach);
registerThemeHelper('inArray', coreHelpers.inArray);
registerThemeHelper('isArray', coreHelpers.isArray);
registerThemeHelper('itemAt', coreHelpers.itemAt);
registerThemeHelper('join', coreHelpers.join);
registerThemeHelper('equalsLength', coreHelpers.equalsLength);
registerThemeHelper('last', coreHelpers.last);
registerThemeHelper('length', coreHelpers.length);
registerThemeHelper('lengthEqual', coreHelpers.lengthEqual);
registerThemeHelper('map', coreHelpers.map);
registerThemeHelper('pluck', coreHelpers.pluck);
registerThemeHelper('reverse', coreHelpers.reverse);
registerThemeHelper('some', coreHelpers.some);
registerThemeHelper('sort', coreHelpers.sort);
registerThemeHelper('sortBy', coreHelpers.sortBy);
registerThemeHelper('withAfter', coreHelpers.withAfter);
registerThemeHelper('withBefore', coreHelpers.withBefore);
registerThemeHelper('withFirst', coreHelpers.withFirst);
registerThemeHelper('withGroup', coreHelpers.withGroup);
registerThemeHelper('withLast', coreHelpers.withLast);
registerThemeHelper('withSort', coreHelpers.withSort);
registerThemeHelper('unique', coreHelpers.unique);
registerThemeHelper('embed', coreHelpers.embed);
registerThemeHelper('gist', coreHelpers.gist);
registerThemeHelper('jsfiddle', coreHelpers.jsfiddle);
registerThemeHelper('isEmpty', coreHelpers.isEmpty);
registerThemeHelper('iterate', coreHelpers.iterate);
registerThemeHelper('and', coreHelpers.and);
registerThemeHelper('compare', coreHelpers.compare);
registerThemeHelper('contains', coreHelpers.contains);
registerThemeHelper('default', coreHelpers.default);
registerThemeHelper('eq', coreHelpers.eq);
registerThemeHelper('gt', coreHelpers.gt);
registerThemeHelper('gte', coreHelpers.gte);
registerThemeHelper('has', coreHelpers.has);
registerThemeHelper('isFalsey', coreHelpers.isFalsey);
registerThemeHelper('isTruthy', coreHelpers.isTruthy);
registerThemeHelper('ifEven', coreHelpers.ifEven);
registerThemeHelper('ifNth', coreHelpers.ifNth);
registerThemeHelper('ifOdd', coreHelpers.ifOdd);
registerThemeHelper('is', coreHelpers.is);
registerThemeHelper('isnt', coreHelpers.isnt);
registerThemeHelper('lt', coreHelpers.lt);
registerThemeHelper('lte', coreHelpers.lte);
registerThemeHelper('neither', coreHelpers.neither);
registerThemeHelper('not', coreHelpers.not);
registerThemeHelper('or', coreHelpers.or);
registerThemeHelper('unlessEq', coreHelpers.unlessEq);
registerThemeHelper('unlessGt', coreHelpers.unlessGt);
registerThemeHelper('unlessLt', coreHelpers.unlessLt);
registerThemeHelper('unlessGteq', coreHelpers.unlessGteq);
registerThemeHelper('unlessLteq', coreHelpers.unlessLteq);
registerThemeHelper('year', coreHelpers.year);
registerThemeHelper('date', coreHelpers.date);
registerThemeHelper('moment', coreHelpers.moment);
registerThemeHelper('fileSize', coreHelpers.fileSize);
registerThemeHelper('read', coreHelpers.read);
registerThemeHelper('readdir', coreHelpers.readdir);
registerThemeHelper('attr', coreHelpers.attr);
registerThemeHelper('css', coreHelpers.css);
registerThemeHelper('js', coreHelpers.js);
registerThemeHelper('sanitize', coreHelpers.sanitize);
registerThemeHelper('ul', coreHelpers.ul);
registerThemeHelper('ol', coreHelpers.ol);
registerThemeHelper('thumbnailImage', coreHelpers.thumbnailImage);
registerThemeHelper('i18n', coreHelpers.i18n);
registerThemeHelper('inflect', coreHelpers.inflect);
registerThemeHelper('ordinalize', coreHelpers.ordinalize);
registerThemeHelper('ok', coreHelpers.ok);
registerThemeHelper('success', coreHelpers.success);
registerThemeHelper('info', coreHelpers.info);
registerThemeHelper('warning', coreHelpers.warning);
registerThemeHelper('warn', coreHelpers.warn);
registerThemeHelper('error', coreHelpers.error);
registerThemeHelper('danger', coreHelpers.danger);
registerThemeHelper('bold', coreHelpers.bold);
registerThemeHelper('markdown', coreHelpers.markdown);
registerThemeHelper('md', coreHelpers.md);
registerThemeHelper('match', coreHelpers.match);
registerThemeHelper('isMatch', coreHelpers.isMatch);
registerThemeHelper('mm', coreHelpers.mm);
registerThemeHelper('abs', coreHelpers.abs);
registerThemeHelper('add', coreHelpers.add);
registerThemeHelper('avg', coreHelpers.avg);
registerThemeHelper('ceil', coreHelpers.ceil);
registerThemeHelper('divide', coreHelpers.divide);
registerThemeHelper('floor', coreHelpers.floor);
registerThemeHelper('minus', coreHelpers.minus);
registerThemeHelper('modulo', coreHelpers.modulo);
registerThemeHelper('multiply', coreHelpers.multiply);
registerThemeHelper('plus', coreHelpers.plus);
registerThemeHelper('random', coreHelpers.random);
registerThemeHelper('remainder', coreHelpers.remainder);
registerThemeHelper('round', coreHelpers.round);
registerThemeHelper('subtract', coreHelpers.subtract);
registerThemeHelper('sum', coreHelpers.sum);
registerThemeHelper('times', coreHelpers.times);
registerThemeHelper('frame', coreHelpers.frame);
registerThemeHelper('option', coreHelpers.option);
registerThemeHelper('noop', coreHelpers.noop);
registerThemeHelper('withHash', coreHelpers.withHash);
registerThemeHelper('bytes', coreHelpers.bytes);
registerThemeHelper('addCommas', coreHelpers.addCommas);
registerThemeHelper('phoneNumber', coreHelpers.phoneNumber);
registerThemeHelper('toAbbr', coreHelpers.toAbbr);
registerThemeHelper('toExponential', coreHelpers.toExponential);
registerThemeHelper('toFixed', coreHelpers.toFixed);
registerThemeHelper('toFloat', coreHelpers.toFloat);
registerThemeHelper('toInt', coreHelpers.toInt);
registerThemeHelper('toPrecision', coreHelpers.toPrecision);
registerThemeHelper('extend', coreHelpers.extend);
registerThemeHelper('forIn', coreHelpers.forIn);
registerThemeHelper('forOwn', coreHelpers.forOwn);
registerThemeHelper('toPath', coreHelpers.toPath);
registerThemeHelper('get', coreHelpers.get);
registerThemeHelper('getObject', coreHelpers.getObject);
registerThemeHelper('hasOwn', coreHelpers.hasOwn);
registerThemeHelper('isObject', coreHelpers.isObject);
registerThemeHelper('JSONparse', coreHelpers.JSONparse);
registerThemeHelper('JSONstringify', coreHelpers.JSONstringify);
registerThemeHelper('merge', coreHelpers.merge);
registerThemeHelper('parseJSON', coreHelpers.parseJSON);
registerThemeHelper('pick', coreHelpers.pick);
registerThemeHelper('stringify', coreHelpers.stringify);
registerThemeHelper('absolute', coreHelpers.absolute);
registerThemeHelper('dirname', coreHelpers.dirname);
registerThemeHelper('relative', coreHelpers.relative);
registerThemeHelper('basename', coreHelpers.basename);
registerThemeHelper('stem', coreHelpers.stem);
registerThemeHelper('extname', coreHelpers.extname);
registerThemeHelper('resolve', coreHelpers.resolve);
registerThemeHelper('segments', coreHelpers.segments);
registerThemeHelper('toRegex', coreHelpers.toRegex);
registerThemeHelper('test', coreHelpers.test);
registerThemeHelper('append', coreHelpers.append);
registerThemeHelper('camelcase', coreHelpers.camelcase);
registerThemeHelper('capitalize', coreHelpers.capitalize);
registerThemeHelper('capitalizeAll', coreHelpers.capitalizeAll);
registerThemeHelper('center', coreHelpers.center);
registerThemeHelper('chop', coreHelpers.chop);
registerThemeHelper('dashcase', coreHelpers.dashcase);
registerThemeHelper('dotcase', coreHelpers.dotcase);
registerThemeHelper('downcase', coreHelpers.downcase);
registerThemeHelper('ellipsis', coreHelpers.ellipsis);
registerThemeHelper('hyphenate', coreHelpers.hyphenate);
registerThemeHelper('isString', coreHelpers.isString);
registerThemeHelper('lowercase', coreHelpers.lowercase);
registerThemeHelper('occurrences', coreHelpers.occurrences);
registerThemeHelper('pascalcase', coreHelpers.pascalcase);
registerThemeHelper('pathcase', coreHelpers.pathcase);
registerThemeHelper('plusify', coreHelpers.plusify);
registerThemeHelper('prepend', coreHelpers.prepend);
registerThemeHelper('raw', coreHelpers.raw);
registerThemeHelper('remove', coreHelpers.remove);
registerThemeHelper('removeFirst', coreHelpers.removeFirst);
registerThemeHelper('replace', coreHelpers.replace);
registerThemeHelper('replaceFirst', coreHelpers.replaceFirst);
registerThemeHelper('sentence', coreHelpers.sentence);
registerThemeHelper('snakecase', coreHelpers.snakecase);
registerThemeHelper('split', coreHelpers.split);
registerThemeHelper('startsWith', coreHelpers.startsWith);
registerThemeHelper('titleize', coreHelpers.titleize);
registerThemeHelper('trim', coreHelpers.trim);
registerThemeHelper('trimLeft', coreHelpers.trimLeft);
registerThemeHelper('trimRight', coreHelpers.trimRight);
registerThemeHelper('truncate', coreHelpers.truncate);
registerThemeHelper('truncateWords', coreHelpers.truncateWords);
registerThemeHelper('upcase', coreHelpers.upcase);
registerThemeHelper('uppercase', coreHelpers.uppercase);
registerThemeHelper('encodeURI', coreHelpers.encodeURI);
registerThemeHelper('escape', coreHelpers.escape);
registerThemeHelper('decodeURI', coreHelpers.decodeURI);
registerThemeHelper('url_encode', coreHelpers.url_encode);
registerThemeHelper('url_decode', coreHelpers.url_decode);
registerThemeHelper('urlResolve', coreHelpers.urlResolve);
registerThemeHelper('urlParse', coreHelpers.urlParse);
registerThemeHelper('stripQuerystring', coreHelpers.stripQuerystring);
registerThemeHelper('stripProtocol', coreHelpers.stripProtocol);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment