summaryrefslogtreecommitdiffstats
path: root/lib/book.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/book.js')
-rw-r--r--lib/book.js41
1 files changed, 31 insertions, 10 deletions
diff --git a/lib/book.js b/lib/book.js
index 2f4aa7c..8b0d22b 100644
--- a/lib/book.js
+++ b/lib/book.js
@@ -377,7 +377,13 @@ Book.prototype.parseReadme = function() {
that.log.debug.ln("readme located at", that.readmeFile);
return that.template.renderFile(that.readmeFile)
.then(function(content) {
- return readme.parser.readme(content);
+ return readme.parser.readme(content)
+ .fail(function(err) {
+ throw that.normError(err, {
+ name: err.name || "Readme Parse Error",
+ fileName: that.readmeFile
+ });
+ });
});
})
.then(function(readme) {
@@ -404,7 +410,13 @@ Book.prototype.parseLangs = function() {
that.log.debug.ln("languages index located at", that.langsFile);
return that.template.renderFile(that.langsFile)
.then(function(content) {
- return langs.parser.langs(content);
+ return langs.parser.langs(content)
+ .fail(function(err) {
+ throw that.normError(err, {
+ name: err.name || "Langs Parse Error",
+ fileName: that.langsFile
+ });
+ });
});
})
.then(function(langs) {
@@ -435,6 +447,12 @@ Book.prototype.parseSummary = function() {
entryPoint: that.readmeFile,
entryPointTitle: that.i18n('SUMMARY_INTRODUCTION'),
files: that.files
+ })
+ .fail(function(err) {
+ throw that.normError(err, {
+ name: err.name || "Summary Parse Error",
+ fileName: that.summaryFile
+ });
});
});
})
@@ -463,7 +481,13 @@ Book.prototype.parseGlossary = function() {
that.log.debug.ln("glossary located at", that.glossaryFile);
return that.template.renderFile(that.glossaryFile)
.then(function(content) {
- return glossary.parser.glossary(content);
+ return glossary.parser.glossary(content)
+ .fail(function(err) {
+ throw that.normError(err, {
+ name: err.name || "Glossary Parse Error",
+ fileName: that.glossaryFile
+ });
+ });
});
})
.then(function(glossary) {
@@ -742,15 +766,12 @@ Book.prototype.i18n = function(phrase) {
};
// Normalize error
-Book.prototype.normError = function(err, opts) {
- opts = _.defaults(opts || {}, {
-
- });
-
+Book.prototype.normError = function(err, opts, defs) {
if (_.isString(err)) err = new Error(err);
// Extend err
- _.extend(err, opts);
+ _.extend(err, opts || {});
+ _.defaults(err, defs || {});
err.lineNumber = err.lineNumber || err.lineno;
err.columnNumber = err.columnNumber || err.colno;
@@ -762,7 +783,7 @@ Book.prototype.normError = function(err, opts) {
if (this.lineNumber) attributes.push("Line "+this.lineNumber);
if (this.columnNumber) attributes.push("Column "+this.columnNumber);
return (this.name || "Error")+": "+this.message+((attributes.length > 0)? " ("+attributes.join(", ")+")" : "")
- }
+ };
return err;
};