diff --git a/core/server/helpers/index.js b/core/server/helpers/index.js
index f0f4453137..101ab3774e 100644
--- a/core/server/helpers/index.js
+++ b/core/server/helpers/index.js
@@ -490,7 +490,9 @@ coreHelpers.ghost_head = function (options) {
blog = config.theme(),
head = [],
majorMinor = /^(\d+\.)?(\d+)/,
- trimmedVersion = this.version;
+ trimmedVersion = this.version,
+ trimmedUrlpattern = /.+(?=\/page\/\d*\/)/,
+ trimmedUrl, next, prev;
trimmedVersion = trimmedVersion ? trimmedVersion.match(majorMinor)[0] : '?';
@@ -502,6 +504,20 @@ coreHelpers.ghost_head = function (options) {
return coreHelpers.url.call(self, {hash: {absolute: true}}).then(function (url) {
head.push('');
+ if (self.pagination) {
+ trimmedUrl = self.relativeUrl.match(trimmedUrlpattern);
+ if (self.pagination.prev) {
+ prev = (self.pagination.prev > 1 ? prev = '/page/' + self.pagination.prev + '/' : prev = '/');
+ prev = (trimmedUrl) ? '/' + trimmedUrl + prev : prev;
+ head.push('');
+ }
+ if (self.pagination.next) {
+ next = '/page/' + self.pagination.next + '/';
+ next = (trimmedUrl) ? '/' + trimmedUrl + next : next;
+ head.push('');
+ }
+ }
+
return filters.doFilter('ghost_head', head);
}).then(function (head) {
var headString = _.reduce(head, function (memo, item) { return memo + '\n' + item; }, '');
diff --git a/core/test/unit/server_helpers_index_spec.js b/core/test/unit/server_helpers_index_spec.js
index f17481e272..b2d42a66a5 100644
--- a/core/test/unit/server_helpers_index_spec.js
+++ b/core/test/unit/server_helpers_index_spec.js
@@ -551,6 +551,32 @@ describe('Core Helpers', function () {
done();
}).catch(done);
});
+
+ it('returns next & prev URL correctly for middle page', function (done) {
+ configUpdate({url: 'http://testurl.com'});
+ helpers.ghost_head.call({version: '0.3.0', relativeUrl: '/page/3/', pagination: {next: '4', prev: '2'}}).then(function (rendered) {
+ should.exist(rendered);
+ rendered.string.should.equal('\n' +
+ '\n' +
+ '\n' +
+ '\n' +
+ '');
+ done();
+ }).catch(done);
+ });
+
+ it('returns next & prev URL correctly for second page', function (done) {
+ configUpdate({url: 'http://testurl.com'});
+ helpers.ghost_head.call({version: '0.3.0', relativeUrl: '/page/2/', pagination: {next: '3', prev: '1'}}).then(function (rendered) {
+ should.exist(rendered);
+ rendered.string.should.equal('\n' +
+ '\n' +
+ '\n' +
+ '\n' +
+ '');
+ done();
+ }).catch(done);
+ });
});
describe('ghost_foot Helper', function () {