mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
26 lines
873 B
JavaScript
26 lines
873 B
JavaScript
var is = require('is');
|
|
var removeArticle = require('./removeArticle');
|
|
var insertArticle = require('./insertArticle');
|
|
|
|
/**
|
|
Returns a new summary, with the given article removed from its
|
|
origin level, and placed at the given target level.
|
|
|
|
@param {Summary} summary
|
|
@param {String|SummaryArticle} origin: level to remove
|
|
@param {String|SummaryArticle} target: the level where the article will be found
|
|
@return {Summary}
|
|
*/
|
|
function moveArticle(summary, origin, target) {
|
|
// Coerce to level
|
|
var originLevel = is.string(origin)? origin : origin.getLevel();
|
|
var targetLevel = is.string(target)? target : target.getLevel();
|
|
var article = summary.getByLevel(originLevel);
|
|
|
|
// Remove first
|
|
var removed = removeArticle(summary, originLevel);
|
|
return insertArticle(removed, article, targetLevel);
|
|
}
|
|
|
|
module.exports = moveArticle;
|