summaryrefslogtreecommitdiffstats
path: root/lib/models
diff options
context:
space:
mode:
authorSoreine <nicolas@gitbook.com>2016-05-03 12:37:26 +0200
committerSoreine <nicolas@gitbook.com>2016-05-03 12:37:26 +0200
commit693171cb0544c900cb964b0b6015ca528aa776f2 (patch)
tree408f2dafa58b8c76e8e0f3dce9c762cbf9a283cc /lib/models
parent6b17d08892828818216a260576c83b7203c2098f (diff)
downloadgitbook-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.js32
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;