Ghost/core/frontend/helpers/is.js
Hannah Wolfe 658a6dd284 Cleaned all usages of proxy in helpers
- the proxy should always be used to access other parts of Ghost, including the urlService etc
- use consistent ES6 style for requires
- minimise use of lodash where possible
- remove circular dependency between proxy and template util
- End goal here is to enforce that the only link between helpers + the rest of Ghost is the proxy
2020-03-31 12:42:15 +01:00

30 lines
789 B
JavaScript

// # Is Helper
// Usage: `{{#is "paged"}}`, `{{#is "index, paged"}}`
// Checks whether we're in a given context.
const {logging, i18n} = require('./proxy');
const _ = require('lodash');
module.exports = function is(context, options) {
options = options || {};
var currentContext = options.data.root.context;
if (!_.isString(context)) {
logging.warn(i18n.t('warnings.helpers.is.invalidAttribute'));
return;
}
function evaluateContext(expr) {
return expr.split(',').map(function (v) {
return v.trim();
}).reduce(function (p, c) {
return p || _.includes(currentContext, c);
}, false);
}
if (evaluateContext(context)) {
return options.fn(this);
}
return options.inverse(this);
};