summaryrefslogtreecommitdiffstats
path: root/lib/configuration.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/configuration.js')
-rw-r--r--lib/configuration.js22
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": {