Ghost/core/server/helpers/is.js
Hannah Wolfe 2c6d43a0c0 Refactor helpers & tests into individual files
no issue

- Split theme helpers into individual files for each
- Do the same for tests
- Have utils to share some things between them
- Move assetHash onto config
2014-10-14 22:52:40 +02:00

33 lines
817 B
JavaScript

// # Is Helper
// Usage: `{{#is "paged"}}`, `{{#is "index, paged"}}`
// Checks whether we're in a given context.
var _ = require('lodash'),
errors = require('../errors'),
is;
is = function (context, options) {
options = options || {};
var currentContext = options.data.root.context;
if (!_.isString(context)) {
errors.logWarn('Invalid or no attribute given to is helper');
return;
}
function evaluateContext(expr) {
return expr.split(',').map(function (v) {
return v.trim();
}).reduce(function (p, c) {
return p || _.contains(currentContext, c);
}, false);
}
if (evaluateContext(context)) {
return options.fn(this);
}
return options.inverse(this);
};
module.exports = is;