diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-04-28 11:15:51 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-04-28 11:15:51 +0200 |
commit | 4763f1342c1b63d2f43ae2f5060b93d4c09271fd (patch) | |
tree | 5ef83232fa187532efe01f59ce3d794476d56b60 /lib/modifiers | |
parent | 9413e53b001c3a7ee9d07a362a7bdd69df4d4c1e (diff) | |
download | gitbook-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.js | 4 | ||||
-rw-r--r-- | lib/modifiers/summary/editPartTitle.js | 24 | ||||
-rw-r--r-- | lib/modifiers/summary/index.js | 7 | ||||
-rw-r--r-- | lib/modifiers/summary/indexLevels.js | 13 | ||||
-rw-r--r-- | lib/modifiers/summary/insertArticle.js | 17 | ||||
-rw-r--r-- | lib/modifiers/summary/unshiftArticle.js | 28 |
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; |