mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
Fix list of files and parsing of navigation files only
This commit is contained in:
+8
-7
@@ -33,6 +33,7 @@ var Book = function(root, options, parent) {
|
||||
|
||||
// Summary
|
||||
this.summary = {};
|
||||
this.navigation = [];
|
||||
|
||||
// Glossary
|
||||
this.glossary = [];
|
||||
@@ -83,6 +84,10 @@ Book.prototype.parse = function() {
|
||||
});
|
||||
})
|
||||
|
||||
.then(function() {
|
||||
if (multilingal) return;
|
||||
return that.listAllFiles();
|
||||
})
|
||||
.then(function() {
|
||||
if (multilingal) return;
|
||||
return that.parseReadme();
|
||||
@@ -95,10 +100,6 @@ Book.prototype.parse = function() {
|
||||
if (multilingal) return;
|
||||
return that.parseGlossary();
|
||||
})
|
||||
.then(function() {
|
||||
if (multilingal) return;
|
||||
return that.listAllFiles();
|
||||
})
|
||||
|
||||
.then(function() {
|
||||
// Init sub-books
|
||||
@@ -149,7 +150,7 @@ Book.prototype.generate = function(generator) {
|
||||
|
||||
if (file[file.length -1] == "/") {
|
||||
return Q(generator.transferFolder(file));
|
||||
} else if (_.contains(parsers.extensions, path.extname(file)) && 1) {
|
||||
} else if (_.contains(parsers.extensions, path.extname(file)) && that.navigation[file]) {
|
||||
return that.parsePage(file)
|
||||
.then(function(content) {
|
||||
return Q(generator.writeParsedFile(content, file));
|
||||
@@ -269,6 +270,7 @@ Book.prototype.parseSummary = function() {
|
||||
})
|
||||
.then(function(summary) {
|
||||
that.summary = summary;
|
||||
that.navigation = parseNavigation(that.summary, that.files);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -307,8 +309,7 @@ Book.prototype.parsePage = function(filename) {
|
||||
return filetype.parser.page(content);
|
||||
})
|
||||
.then(function(page) {
|
||||
page.navigation = parseNavigation(that.summary, that.files);
|
||||
page.progress = parseProgress(page.navigation, filename);
|
||||
page.progress = parseProgress(that.navigation, filename);
|
||||
return page;
|
||||
});
|
||||
};
|
||||
|
||||
+23
-14
@@ -2,26 +2,35 @@ var path = require('path');
|
||||
var _ = require('lodash');
|
||||
var assert = require('assert');
|
||||
|
||||
var fs = require('../lib/utils/fs');
|
||||
var fs = require("fs");
|
||||
var fsUtil = require("../lib/utils/fs");
|
||||
|
||||
var testGeneration = function(book, type, func, done) {
|
||||
var OUTPUT_PATH = book.options.output;
|
||||
|
||||
qdone(
|
||||
book.generate(type)
|
||||
.then(function() {
|
||||
func(OUTPUT_PATH);
|
||||
})
|
||||
.fin(function() {
|
||||
return fsUtil.remove(OUTPUT_PATH);
|
||||
}),
|
||||
done);
|
||||
};
|
||||
|
||||
|
||||
describe('Book generation', function () {
|
||||
it('should correctly generate a book to json', function(done) {
|
||||
var OUTPUT_PATH = book1.options.output;
|
||||
|
||||
qdone(
|
||||
book1.generate("json")
|
||||
.fin(function() {
|
||||
return fs.remove(OUTPUT_PATH);
|
||||
}), done);
|
||||
testGeneration(book1, "json", function(output) {
|
||||
assert(!fs.existsSync(path.join(output, "README.json")));
|
||||
assert(fs.existsSync(path.join(output, "intro.json")))
|
||||
}, done);
|
||||
});
|
||||
|
||||
it('should correctly generate a multilingual book to json', function(done) {
|
||||
var OUTPUT_PATH = book2.options.output;
|
||||
testGeneration(book2, "json", function(output) {
|
||||
|
||||
qdone(
|
||||
book2.generate("json")
|
||||
.fin(function() {
|
||||
return fs.remove(OUTPUT_PATH);
|
||||
}), done);
|
||||
}, done);
|
||||
});
|
||||
});
|
||||
|
||||
+2
-2
@@ -31,8 +31,8 @@ describe('Book parsing', function () {
|
||||
it('should correctly parse files', function() {
|
||||
var FILES = book1.files;
|
||||
|
||||
assert.equal(FILES.length, 4);
|
||||
assert.equal(_.difference(FILES, [ 'GLOSSARY.md', 'README.md', 'SUMMARY.md', 'intro.md' ]).length, 0);
|
||||
assert.equal(FILES.length, 2);
|
||||
assert.equal(_.difference(FILES, [ 'intro.md', 'README.md' ]).length, 0);
|
||||
});
|
||||
|
||||
it('should correctly parse the languages', function() {
|
||||
|
||||
Reference in New Issue
Block a user