mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
49 lines
1.0 KiB
JavaScript
49 lines
1.0 KiB
JavaScript
var Immutable = require('immutable');
|
|
|
|
var SummaryArticle = require('./summaryArticle');
|
|
|
|
/*
|
|
A part represents a section in the Summary / table of Contents
|
|
*/
|
|
|
|
var SummaryPart = Immutable.Record({
|
|
level: String(),
|
|
title: String(),
|
|
articles: Immutable.List()
|
|
});
|
|
|
|
SummaryPart.prototype.getLevel = function() {
|
|
return this.get('level');
|
|
};
|
|
|
|
SummaryPart.prototype.getTitle = function() {
|
|
return this.get('title');
|
|
};
|
|
|
|
SummaryPart.prototype.getArticles = function() {
|
|
return this.get('articles');
|
|
};
|
|
|
|
/**
|
|
Create a SummaryPart
|
|
|
|
@param {Object} def
|
|
@return {SummaryPart}
|
|
*/
|
|
SummaryPart.create = function(def, level) {
|
|
var articles = (def.articles || []).map(function(article, i) {
|
|
if (article instanceof SummaryArticle) {
|
|
return article;
|
|
}
|
|
return SummaryArticle.create(article, [level, i + 1].join('.'));
|
|
});
|
|
|
|
return new SummaryPart({
|
|
level: String(level),
|
|
title: def.title,
|
|
articles: Immutable.List(articles)
|
|
});
|
|
};
|
|
|
|
module.exports = SummaryPart;
|