Fix list of files and parsing of navigation files only

This commit is contained in:
Samy Pessé
2015-01-19 21:16:06 +01:00
parent b549158483
commit a67dad8cbe
3 changed files with 33 additions and 23 deletions
+8 -7
View File
@@ -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
View File
@@ -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
View File
@@ -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() {