Files
gitbook/lib/parse/parsePagesList.js
T
Samy Pessé 4336fdb241 Base
2016-04-22 11:00:21 +02:00

40 lines
893 B
JavaScript

var Immutable = require('immutable');
var Page = require('../models/page');
var walkSummary = require('./walkSummary');
/**
Parse all pages from a book as an OrderedMap
@param {Book} book
@return {Promise<OrderedMap<Page>>}
*/
function parsePagesList(book) {
var fs = book.getContentFS();
var summary = book.getSummary();
var map = Immutable.OrderedMap();
return walkSummary(summary, function(article) {
if (!article.isPage()) return;
var filepath = article.getPath();
// Is the page ignored?
if (book.isContentFileIgnored(filepath)) return;
return fs.statFile(filepath)
.then(function(file) {
map = map.set(
filepath,
Page.createForFile(file)
);
});
})
.then(function() {
return map;
});
}
module.exports = parsePagesList;