diff --git a/core/server/helpers/index.js b/core/server/helpers/index.js index f4b8967e0f..c0c70762f6 100644 --- a/core/server/helpers/index.js +++ b/core/server/helpers/index.js @@ -227,12 +227,17 @@ coreHelpers = function (ghost) { ghost.registerThemeHelper('post_class', function (options) { var classes = ['post'], - tags = this.post && this.post.tags ? this.post.tags : this.tags || []; + tags = this.post && this.post.tags ? this.post.tags : this.tags || [], + featured = this.post && this.post.featured ? this.post.featured : this.featured || false; if (tags) { classes = classes.concat(tags.map(function (tag) { return 'tag-' + tag.slug; })); } + if (featured) { + classes.push('featured'); + } + return ghost.doFilter('post_class', classes, function (classes) { var classString = _.reduce(classes, function (memo, item) { return memo + ' ' + item; }, ''); return new hbs.handlebars.SafeString(classString.trim()); diff --git a/core/test/unit/server_helpers_index_spec.js b/core/test/unit/server_helpers_index_spec.js index ac8571a21c..a850f7f804 100644 --- a/core/test/unit/server_helpers_index_spec.js +++ b/core/test/unit/server_helpers_index_spec.js @@ -197,6 +197,14 @@ describe('Core Helpers', function () { rendered.string.should.equal('post'); }); + + it('can render featured class', function () { + var post = { featured: true }, + rendered = handlebars.helpers.post_class.call(post); + + should.exist(rendered); + rendered.string.should.equal('post featured'); + }); }); describe('ghost_head Helper', function () {