summaryrefslogtreecommitdiffstats
path: root/lib/modifiers
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-04-28 11:15:51 +0200
committerSamy Pessé <samypesse@gmail.com>2016-04-28 11:15:51 +0200
commit4763f1342c1b63d2f43ae2f5060b93d4c09271fd (patch)
tree5ef83232fa187532efe01f59ce3d794476d56b60 /lib/modifiers
parent9413e53b001c3a7ee9d07a362a7bdd69df4d4c1e (diff)
downloadgitbook-4763f1342c1b63d2f43ae2f5060b93d4c09271fd.zip
gitbook-4763f1342c1b63d2f43ae2f5060b93d4c09271fd.tar.gz
gitbook-4763f1342c1b63d2f43ae2f5060b93d4c09271fd.tar.bz2
Add base modifiers for summary as SummaryModifier
Diffstat (limited to 'lib/modifiers')
-rw-r--r--lib/modifiers/index.js4
-rw-r--r--lib/modifiers/summary/editPartTitle.js24
-rw-r--r--lib/modifiers/summary/index.js7
-rw-r--r--lib/modifiers/summary/indexLevels.js13
-rw-r--r--lib/modifiers/summary/insertArticle.js17
-rw-r--r--lib/modifiers/summary/unshiftArticle.js28
6 files changed, 93 insertions, 0 deletions
diff --git a/lib/modifiers/index.js b/lib/modifiers/index.js
new file mode 100644
index 0000000..ed09e31
--- /dev/null
+++ b/lib/modifiers/index.js
@@ -0,0 +1,4 @@
+
+module.exports = {
+ Summary: require('./summary')
+};
diff --git a/lib/modifiers/summary/editPartTitle.js b/lib/modifiers/summary/editPartTitle.js
new file mode 100644
index 0000000..472399b
--- /dev/null
+++ b/lib/modifiers/summary/editPartTitle.js
@@ -0,0 +1,24 @@
+
+/**
+ Edit title of a part in the summary
+
+ @param {Summary} summary
+ @param {Number} index
+ @param {String} newTitle
+ @return {Summary}
+*/
+function editPartTitle(summary, index, newTitle) {
+ var parts = summary.getParts();
+
+ var part = parts.get(index);
+ if (!part) {
+ return summary;
+ }
+
+ part = part.set('title', newTitle);
+ parts = parts.set(index, part);
+
+ return summary.set('parts', parts);
+}
+
+module.exports = editPartTitle;
diff --git a/lib/modifiers/summary/index.js b/lib/modifiers/summary/index.js
new file mode 100644
index 0000000..03f1098
--- /dev/null
+++ b/lib/modifiers/summary/index.js
@@ -0,0 +1,7 @@
+
+module.exports = {
+ insertArticle: require('./insertArticle'),
+ unshiftArticle: require('./unshiftArticle'),
+
+ editPartTitle: require('./editPartTitle')
+};
diff --git a/lib/modifiers/summary/indexLevels.js b/lib/modifiers/summary/indexLevels.js
new file mode 100644
index 0000000..d29b043
--- /dev/null
+++ b/lib/modifiers/summary/indexLevels.js
@@ -0,0 +1,13 @@
+
+/**
+ Index all levels in the summary
+
+ @param {Summary}
+ @return {Summary}
+*/
+function indexLevels(summary) {
+
+}
+
+
+module.exports = indexLevels;
diff --git a/lib/modifiers/summary/insertArticle.js b/lib/modifiers/summary/insertArticle.js
new file mode 100644
index 0000000..ec29978
--- /dev/null
+++ b/lib/modifiers/summary/insertArticle.js
@@ -0,0 +1,17 @@
+var SummaryArticle = require('../../models/summaryArticle');
+
+/**
+ Insert an article in a summary, and reindex levels correctly
+
+ @param {Summary} summary
+ @param {String} level: level to insert after
+ @param {Article} article
+ @return {Summary}
+*/
+function insertArticle(summary, level, article) {
+ article = SummaryArticle(article);
+
+
+}
+
+module.exports = insertArticle;
diff --git a/lib/modifiers/summary/unshiftArticle.js b/lib/modifiers/summary/unshiftArticle.js
new file mode 100644
index 0000000..6bb97c9
--- /dev/null
+++ b/lib/modifiers/summary/unshiftArticle.js
@@ -0,0 +1,28 @@
+var SummaryArticle = require('../../models/summaryArticle');
+var SummaryPart = require('../../models/summaryPart');
+
+var indexLevels = require('./indexLevels');
+
+/**
+ Insert an article at the
+
+ @param {Summary} summary
+ @param {Article} article
+ @return {Summary}
+*/
+function unshiftArticle(summary, article) {
+ article = SummaryArticle(article);
+
+ var parts = summary.getParts();
+ var part = parts.get(0) || SummaryPart();
+
+ var articles = part.getArticles();
+ articles = articles.unshift(article);
+
+ parts = parts.set(0, part);
+ summary = summary.set('parts', parts);
+
+ return indexLevels(summary);
+}
+
+module.exports = unshiftArticle;