diff --git a/lib/backbone/summary.js b/lib/backbone/summary.js index 439546bec..4ae345370 100644 --- a/lib/backbone/summary.js +++ b/lib/backbone/summary.js @@ -74,6 +74,7 @@ TOCArticle.prototype.getContext = function() { return { level: this.level, title: this.title, + depth: this.depth(), path: this.isExternal()? undefined : this.path, anchor: this.isExternal()? undefined : this.anchor, url: this.isExternal()? this.ref : undefined @@ -105,6 +106,11 @@ TOCArticle.prototype.hasParent = function() { return !(this.parent instanceof TOCPart); }; +// Return depth of this article +TOCArticle.prototype.depth = function() { + return this.level.split('.').length; +}; + // Return next article in the TOC TOCArticle.prototype.next = function() { return this._next; diff --git a/lib/page/index.js b/lib/page/index.js index 11cbb57ea..57b048d6e 100644 --- a/lib/page/index.js +++ b/lib/page/index.js @@ -122,6 +122,7 @@ Page.prototype.getContext = function() { next: next? next.getContext() : null, previous: prev? prev.getContext() : null, level: article? article.level : null, + depth: article? article.depth : 0, content: this.content, dir: dir } diff --git a/test/summary.js b/test/summary.js index a98b6b777..08b9db852 100644 --- a/test/summary.js +++ b/test/summary.js @@ -105,6 +105,12 @@ describe('Summary / Table of contents', function() { book.summary.getArticleByLevel('2.1').title.should.equal('Hello 3'); book.summary.getArticleByLevel('2.1.1').title.should.equal('Hello 4'); }); + + it('should correctly calcul depth', function() { + book.summary.getArticleByLevel('0').depth().should.equal(1); + book.summary.getArticleByLevel('1.1').depth().should.equal(2); + book.summary.getArticleByLevel('1.1.1').depth().should.equal(3); + }); }); describe('External', function() {