mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
Method for parsing glossary when not listed in summary
This commit is contained in:
+41
-10
@@ -5,6 +5,25 @@ var Page = require('../models/page');
|
||||
var walkSummary = require('./walkSummary');
|
||||
var parsePage = require('./parsePage');
|
||||
|
||||
|
||||
/**
|
||||
Parse a page from a path
|
||||
|
||||
@param {Book} book
|
||||
@param {String} filePath
|
||||
@return {Page}
|
||||
*/
|
||||
function parseFilePage(book, filePath) {
|
||||
var fs = book.getContentFS();
|
||||
|
||||
return fs.statFile(filePath)
|
||||
.then(function(file) {
|
||||
var page = Page.createForFile(file);
|
||||
return parsePage(book, page);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Parse all pages from a book as an OrderedMap
|
||||
|
||||
@@ -12,10 +31,11 @@ var parsePage = require('./parsePage');
|
||||
@return {Promise<OrderedMap<Page>>}
|
||||
*/
|
||||
function parsePagesList(book) {
|
||||
var fs = book.getContentFS();
|
||||
var summary = book.getSummary();
|
||||
var glossary = book.getGlossary();
|
||||
var map = Immutable.OrderedMap();
|
||||
|
||||
// Parse pages from summary
|
||||
return timing.measure(
|
||||
'parse.listPages',
|
||||
walkSummary(summary, function(article) {
|
||||
@@ -26,21 +46,32 @@ function parsePagesList(book) {
|
||||
// Is the page ignored?
|
||||
if (book.isContentFileIgnored(filepath)) return;
|
||||
|
||||
return fs.statFile(filepath)
|
||||
.then(function(file) {
|
||||
var page = Page.createForFile(file);
|
||||
return parsePage(book, page);
|
||||
})
|
||||
return parseFilePage(book, filepath)
|
||||
.then(function(page) {
|
||||
map = map.set(filepath, page);
|
||||
}, function() {
|
||||
// file doesn't exist
|
||||
});
|
||||
})
|
||||
.then(function() {
|
||||
return map;
|
||||
})
|
||||
);
|
||||
)
|
||||
|
||||
// Parse glossary
|
||||
.then(function() {
|
||||
var file = glossary.getFile();
|
||||
|
||||
if (!file.exists()) {
|
||||
return;
|
||||
}
|
||||
|
||||
return parseFilePage(book, file.getPath())
|
||||
.then(function(page) {
|
||||
map = map.set(file.getPath(), page);
|
||||
});
|
||||
})
|
||||
|
||||
.then(function() {
|
||||
return map;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user