diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-09-05 11:04:18 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-09-05 11:04:18 +0200 |
commit | a14ca3e268e95a7eab59fb205b41da7331d57631 (patch) | |
tree | 9c84b2cbd561345335fca3e26af961b2ea23d8ec /lib/modifiers/summary/moveArticleAfter.js | |
parent | 9c071dade573aa6990878006f83c89b6065a1395 (diff) | |
download | gitbook-a14ca3e268e95a7eab59fb205b41da7331d57631.zip gitbook-a14ca3e268e95a7eab59fb205b41da7331d57631.tar.gz gitbook-a14ca3e268e95a7eab59fb205b41da7331d57631.tar.bz2 |
Switch to lerna
Diffstat (limited to 'lib/modifiers/summary/moveArticleAfter.js')
-rw-r--r-- | lib/modifiers/summary/moveArticleAfter.js | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/lib/modifiers/summary/moveArticleAfter.js b/lib/modifiers/summary/moveArticleAfter.js deleted file mode 100644 index e268f73..0000000 --- a/lib/modifiers/summary/moveArticleAfter.js +++ /dev/null @@ -1,60 +0,0 @@ -var is = require('is'); -var removeArticle = require('./removeArticle'); -var insertArticle = require('./insertArticle'); - -/** - Returns a new summary, with the an article moved after another - article. Unlike `moveArticle`, does not ensure that the article - will be found at the target's level plus one. - - @param {Summary} summary - @param {String|SummaryArticle} origin - @param {String|SummaryArticle} afterTarget - @return {Summary} -*/ -function moveArticleAfter(summary, origin, afterTarget) { - // Coerce to level - var originLevel = is.string(origin)? origin : origin.getLevel(); - var afterTargetLevel = is.string(afterTarget)? afterTarget : afterTarget.getLevel(); - var article = summary.getByLevel(originLevel); - - var targetLevel = increment(afterTargetLevel); - - if (targetLevel < origin) { - // Remove first - var removed = removeArticle(summary, originLevel); - // Insert then - return insertArticle(removed, article, targetLevel); - } else { - // Insert right after first - var inserted = insertArticle(summary, article, targetLevel); - // Remove old one - return removeArticle(inserted, originLevel); - } -} - -/** - @param {String} - @return {Array<Number>} - */ -function levelToArray(l) { - return l.split('.').map(function (char) { - return parseInt(char, 10); - }); -} - -/** - @param {Array<Number>} - @return {String} - */ -function arrayToLevel(a) { - return a.join('.'); -} - -function increment(level) { - level = levelToArray(level); - level[level.length - 1]++; - return arrayToLevel(level); -} - -module.exports = moveArticleAfter; |