// # Content Helper // Usage: `{{content}}`, `{{content words="20"}}`, `{{content characters="256"}}` // // Turns content html into a safestring so that the user doesn't have to // escape it or tell handlebars to leave it alone with a triple-brace. // // Enables tag-safe truncation of content by characters or words. var proxy = require('./proxy'), _ = require('lodash'), downsize = require('downsize'), SafeString = proxy.SafeString; module.exports = function content(options) { var truncateOptions = (options || {}).hash || {}; truncateOptions = _.pick(truncateOptions, ['words', 'characters']); _.keys(truncateOptions).map(function (key) { truncateOptions[key] = parseInt(truncateOptions[key], 10); }); if (truncateOptions.hasOwnProperty('words') || truncateOptions.hasOwnProperty('characters')) { return new SafeString( downsize(this.html, truncateOptions) ); } return new SafeString(this.html); };