UNPKG

gpreview

Version:

Preview Ghost themes locally without a full Ghost installation

142 lines 5.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerHelpers = registerHelpers; const asset_1 = require("./asset"); const bodyClass_1 = require("./bodyClass"); const postClass_1 = require("./postClass"); const ghostHead_1 = require("./ghostHead"); const ghostFoot_1 = require("./ghostFoot"); const foreach_1 = require("./foreach"); const navigation_1 = require("./navigation"); const date_1 = require("./date"); const excerpt_1 = require("./excerpt"); const imgUrl_1 = require("./imgUrl"); const get_1 = require("./get"); const is_1 = require("./is"); const has_1 = require("./has"); const unless_1 = require("./unless"); const content_1 = require("./content"); const tags_1 = require("./tags"); const authors_1 = require("./authors"); const meta_1 = require("./meta"); const pagination_1 = require("./pagination"); const plural_1 = require("./plural"); const encode_1 = require("./encode"); const title_1 = require("./title"); const url_1 = require("./url"); function registerHelpers(handlebars) { handlebars.registerHelper('asset', asset_1.assetHelper); handlebars.registerHelper('body_class', bodyClass_1.bodyClassHelper); handlebars.registerHelper('post_class', postClass_1.postClassHelper); handlebars.registerHelper('ghost_head', ghostHead_1.ghostHeadHelper); handlebars.registerHelper('ghost_foot', ghostFoot_1.ghostFootHelper); handlebars.registerHelper('foreach', foreach_1.foreachHelper); handlebars.registerHelper('get', get_1.getHelper); handlebars.registerHelper('is', is_1.isHelper); handlebars.registerHelper('has', has_1.hasHelper); handlebars.registerHelper('unless', unless_1.unlessHelper); handlebars.registerHelper('content', content_1.contentHelper); handlebars.registerHelper('excerpt', excerpt_1.excerptHelper); handlebars.registerHelper('title', title_1.titleHelper); handlebars.registerHelper('tags', tags_1.tagsHelper); handlebars.registerHelper('authors', authors_1.authorsHelper); handlebars.registerHelper('date', date_1.dateHelper); handlebars.registerHelper('img_url', imgUrl_1.imgUrlHelper); handlebars.registerHelper('url', url_1.urlHelper); handlebars.registerHelper('navigation', navigation_1.navigationHelper); handlebars.registerHelper('pagination', pagination_1.paginationHelper); handlebars.registerHelper('meta_title', meta_1.metaHelper.title); handlebars.registerHelper('meta_description', meta_1.metaHelper.description); handlebars.registerHelper('plural', plural_1.pluralHelper); handlebars.registerHelper('encode', encode_1.encodeHelper); handlebars.registerHelper('block', function (_name) { return new handlebars.SafeString(''); }); handlebars.registerHelper('contentFor', function (_name, _options) { return new handlebars.SafeString(''); }); handlebars.registerHelper('concat', function (...args) { const values = args.slice(0, -1); return values.join(''); }); handlebars.registerHelper('else', function (...args) { if (args.length >= 3 && args[0] === 'match') { args.shift(); return handlebars.helpers.match.apply(this, args); } return ''; }); handlebars.registerHelper('match', function (...args) { let a, operator, b, options; if (args.length === 2 && typeof args[1] === 'object' && args[1] !== null && 'fn' in args[1] && 'inverse' in args[1]) { a = args[0]; options = args[1]; const result = !!a; if (result) { return options.fn ? options.fn(this) : ''; } else { return options.inverse ? options.inverse(this) : ''; } } else if (args.length === 3 && typeof args[2] === 'object' && args[2] !== null && 'fn' in args[2] && 'inverse' in args[2]) { a = args[0]; operator = '=='; b = args[1]; options = args[2]; } else if (args.length === 4) { a = args[0]; operator = String(args[1]); b = args[2]; options = args[3]; } else { throw new Error('Invalid arguments for match helper'); } let result = false; switch (operator) { case '=': case '==': result = a == b; break; case '===': result = a === b; break; case '!=': result = a != b; break; case '!==': result = a !== b; break; case '<': result = a < b; break; case '>': result = a > b; break; case '<=': result = a <= b; break; case '>=': result = a >= b; break; default: if (typeof options === 'undefined' && b && typeof b === 'object' && b !== null && 'fn' in b && 'inverse' in b) { options = b; b = operator; result = a == b; } else { throw new Error(`Unknown operator: ${operator}`); } } if (result) { return options.fn ? options.fn(this) : ''; } else { return options.inverse ? options.inverse(this) : ''; } }); } //# sourceMappingURL=index.js.map