summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/backbone/summary.js6
-rw-r--r--lib/page/index.js1
-rw-r--r--test/summary.js6
3 files changed, 13 insertions, 0 deletions
diff --git a/lib/backbone/summary.js b/lib/backbone/summary.js
index 439546b..4ae3453 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 11cbb57..57b048d 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 a98b6b7..08b9db8 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() {