0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-13 22:41:32 -05:00
ghost/core/server/helpers/meta_title.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

48 lines
1.4 KiB
JavaScript

// # Meta Title Helper
// Usage: `{{meta_title}}`
//
// Page title used for sharing and SEO
//
// We use the name meta_title to match the helper for consistency:
// jscs:disable requireCamelCaseOrUpperCaseIdentifiers
var _ = require('lodash'),
config = require('../config'),
filters = require('../filters'),
meta_title;
meta_title = function (options) {
/*jshint unused:false*/
var title = '',
blog,
page,
pageString = '';
if (_.isString(this.relativeUrl)) {
blog = config.theme;
page = this.relativeUrl.match(/\/page\/(\d+)/);
if (page) {
pageString = ' - Page ' + page[1];
}
if (!this.relativeUrl || this.relativeUrl === '/' || this.relativeUrl === '') {
title = blog.title;
} else if (this.author) {
title = this.author.name + pageString + ' - ' + blog.title;
} else if (this.tag) {
title = this.tag.name + pageString + ' - ' + blog.title;
} else if (this.post) {
title = _.isEmpty(this.post.meta_title) ? this.post.title : this.post.meta_title;
} else {
title = blog.title + pageString;
}
}
return filters.doFilter('meta_title', title).then(function (title) {
title = title || '';
return title.trim();
});
};
module.exports = meta_title;