diff options
author | Soreine <nicolas@gitbook.com> | 2016-05-03 12:37:26 +0200 |
---|---|---|
committer | Soreine <nicolas@gitbook.com> | 2016-05-03 12:37:26 +0200 |
commit | 693171cb0544c900cb964b0b6015ca528aa776f2 (patch) | |
tree | 408f2dafa58b8c76e8e0f3dce9c762cbf9a283cc /lib/models | |
parent | 6b17d08892828818216a260576c83b7203c2098f (diff) | |
download | gitbook-693171cb0544c900cb964b0b6015ca528aa776f2.zip gitbook-693171cb0544c900cb964b0b6015ca528aa776f2.tar.gz gitbook-693171cb0544c900cb964b0b6015ca528aa776f2.tar.bz2 |
Adds move and remove article modifier.
Diffstat (limited to 'lib/models')
-rw-r--r-- | lib/models/summary.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/models/summary.js b/lib/models/summary.js index ec7e05f..a25d9ec 100644 --- a/lib/models/summary.js +++ b/lib/models/summary.js @@ -130,6 +130,27 @@ Summary.prototype.getPrevArticle = function(current) { }; /** + Return the parent article, or parent part of an article + + @param {String|Article} current + @return {Article|Part|Null} +*/ +Summary.prototype.getParent = function (level) { + // Coerce to level + level = is.string(level)? level : level.getLevel(); + + // Get parent level + var parentLevel = getParentLevel(level); + if (!parentLevel) { + return null; + } + + // Get parent of the position + var parentArticle = this.getByLevel(parentLevel); + return parentArticle || null; +}; + +/** Render summary as text @param {String} parseExt Extension of the parser to use @@ -188,4 +209,15 @@ Summary.createFromParts = function createFromParts(file, parts) { }); }; +/** + Returns parent level of a level + + @param {String} level + @return {String} +*/ +function getParentLevel(level) { + var parts = level.split('.'); + return parts.slice(0, -1).join('.'); +} + module.exports = Summary; |