diff options
Diffstat (limited to 'lib/configuration.js')
-rw-r--r-- | lib/configuration.js | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/lib/configuration.js b/lib/configuration.js index 29776bd..acff1c1 100644 --- a/lib/configuration.js +++ b/lib/configuration.js @@ -8,7 +8,7 @@ var fs = require("./utils/fs"); var i18n = require("./utils/i18n"); // Default plugins added to each books -var defaultsPlugins = []; +var defaultsPlugins = ['highlight']; // Normalize a list of plugins to use function normalizePluginsList(plugins) { @@ -100,7 +100,7 @@ Configuration.prototype.load = function() { try { configPath = require.resolve( - path.resolve(that.book.root, that.options.configFile) + that.book.resolve(that.options.configFile) ); // Invalidate node.js cache for livreloading @@ -121,11 +121,11 @@ Configuration.prototype.load = function() { if (!semver.satisfies(pkg.version, that.options.gitbook)) { throw "GitBook version doesn't satisfy version required by the book: "+that.options.gitbook; } - if (that.options.gitbook == "*") { - that.book.log.warn.ln("you should specify a gitbook version to use in your book.json, for example: "+(_.first(pkg.version.split("."))+".x.x")); + if (that.options.gitbook != '*' && !semver.satisfies(semver.inc(pkg.version, 'patch'), that.options.gitbook)) { + that.book.log.warn.ln("gitbook version specified in your book.json might be too strict for future patches, \""+(_.first(pkg.version.split("."))+".x.x")+"\" is more adequate"); } - that.options.output = path.resolve(that.options.output || path.join(that.book.root, "_book")); + that.options.output = path.resolve(that.options.output || that.book.resolve("_book")); that.options.plugins = normalizePluginsList(that.options.plugins); that.options.defaultsPlugins = normalizePluginsList(that.options.defaultsPlugins || ""); that.options.plugins = _.union(that.options.plugins, that.options.defaultsPlugins); @@ -156,6 +156,10 @@ Configuration.prototype.normalizeLanguage = function() { return i18n.normalizeLanguage(this.options.language); }; +// Return a configuration +Configuration.prototype.get = function(key, def) { + return _.get(this.options, key, def); +}; // Default configuration Configuration.DEFAULT = { @@ -246,6 +250,14 @@ Configuration.DEFAULT = { // Choices are [u’a0’, u’a1’, u’a2’, u’a3’, u’a4’, u’a5’, u’a6’, u’b0’, u’b1’, u’b2’, u’b3’, u’b4’, u’b5’, u’b6’, u’legal’, u’letter’] "paperSize": "a4", + // How to mark detected chapters. + // Choices are “pagebreak”, “rule”, "both" or “none”. + "chapterMark" : "pagebreak", + + // An XPath expression. Page breaks are inserted before the specified elements. + // To disable use the expression: "/" + "pageBreaksBefore": "/", + // Margin (in pts) // Note: 72 pts equals 1 inch "margin": { |