diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-10-05 10:32:43 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-10-05 10:32:43 +0200 |
commit | eab3c50288a0fa35237bd38536ee1f223250beaf (patch) | |
tree | 427078d8e8058a1728453654d8cab4e464d35306 /lib/configuration.js | |
parent | 74396e7240f00b6f38239eedf2b10547a4868b4c (diff) | |
download | gitbook-eab3c50288a0fa35237bd38536ee1f223250beaf.zip gitbook-eab3c50288a0fa35237bd38536ee1f223250beaf.tar.gz gitbook-eab3c50288a0fa35237bd38536ee1f223250beaf.tar.bz2 |
Add sharing plugin as default
Diffstat (limited to 'lib/configuration.js')
-rw-r--r-- | lib/configuration.js | 176 |
1 files changed, 88 insertions, 88 deletions
diff --git a/lib/configuration.js b/lib/configuration.js index c8b15b8..93dc29c 100644 --- a/lib/configuration.js +++ b/lib/configuration.js @@ -1,13 +1,13 @@ -var _ = require("lodash"); -var Q = require("q"); -var path = require("path"); -var semver = require("semver"); +var _ = require('lodash'); +var Q = require('q'); +var path = require('path'); +var semver = require('semver'); -var pkg = require("../package.json"); -var i18n = require("./utils/i18n"); +var pkg = require('../package.json'); +var i18n = require('./utils/i18n'); // Default plugins added to each books -var DEFAULT_PLUGINS = ["highlight"]; +var DEFAULT_PLUGINS = ['highlight', 'sharing']; // Check if a plugin is a default plugin // Plugin should be in the list @@ -26,29 +26,29 @@ function isDefaultPlugin(name, version) { // Normalize a list of plugins to use function normalizePluginsList(plugins, addDefaults) { // Normalize list to an array - plugins = _.isString(plugins) ? plugins.split(",") : (plugins || []); + plugins = _.isString(plugins) ? plugins.split(',') : (plugins || []); // Remove empty parts plugins = _.compact(plugins); - // Divide as {name, version} to handle format like "myplugin@1.0.0" + // Divide as {name, version} to handle format like 'myplugin@1.0.0' plugins = _.map(plugins, function(plugin) { if (plugin.name) return plugin; - var parts = plugin.split("@"); + var parts = plugin.split('@'); var name = parts[0]; var version = parts[1]; return { - "name": name, - "version": version, // optional - "isDefault": isDefaultPlugin(name, version) + 'name': name, + 'version': version, // optional + 'isDefault': isDefaultPlugin(name, version) }; }); // List plugins to remove var toremove = _.chain(plugins) .filter(function(plugin) { - return plugin.name.length > 0 && plugin.name[0] == "-"; + return plugin.name.length > 0 && plugin.name[0] == '-'; }) .map(function(plugin) { return plugin.name.slice(1); @@ -63,15 +63,15 @@ function normalizePluginsList(plugins, addDefaults) { } plugins.push({ - "name": plugin, - "isDefault": true + 'name': plugin, + 'isDefault': true }); }); } // Remove plugin that start with '-' plugins = _.filter(plugins, function(plugin) { - return !_.contains(toremove, plugin.name) && !(plugin.name.length > 0 && plugin.name[0] == "-"); + return !_.contains(toremove, plugin.name) && !(plugin.name.length > 0 && plugin.name[0] == '-'); }); // Remove duplicates @@ -89,21 +89,21 @@ var Configuration = function(book, options) { this.options = _.merge(this.options, options || {}); // options.input == book.root - Object.defineProperty(this.options, "input", { + Object.defineProperty(this.options, 'input', { get: function () { return that.book.root; } }); // options.originalInput == book.parent.root - Object.defineProperty(this.options, "originalInput", { + Object.defineProperty(this.options, 'originalInput', { get: function () { return that.book.parent? that.book.parent.root : undefined; } }); // options.originalOutput == book.parent.options.output - Object.defineProperty(this.options, "originalOutput", { + Object.defineProperty(this.options, 'originalOutput', { get: function () { return that.book.parent? that.book.parent.options.output : undefined; } @@ -129,7 +129,7 @@ Configuration.prototype.load = function() { _config = require(configPath); that.options = _.merge( that.options, - _.omit(_config, "configFile", "defaultsPlugins", "generator", "extension") + _.omit(_config, 'configFile', 'defaultsPlugins', 'generator', 'extension') ); } catch(err) { @@ -140,18 +140,18 @@ Configuration.prototype.load = function() { .then(function() { if (!that.book.isSubBook()) { if (!semver.satisfies(pkg.version, that.options.gitbook)) { - throw new Error("GitBook version doesn't satisfy version required by the book: "+that.options.gitbook); + throw new Error('GitBook version doesn't satisfy version required by the book: '+that.options.gitbook); } - 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"); + 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 || that.book.resolve("_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 || "", false); + that.options.defaultsPlugins = normalizePluginsList(that.options.defaultsPlugins || '', false); that.options.plugins = _.union(that.options.plugins, that.options.defaultsPlugins); - that.options.plugins = _.uniq(that.options.plugins, "name"); + that.options.plugins = _.uniq(that.options.plugins, 'name'); // Default value for text direction (from language) if (!that.options.direction) { @@ -170,7 +170,7 @@ Configuration.prototype.extend = function(options) { // Get structure file Configuration.prototype.getStructure = function(name) { - return this.options.structure[name].split(".").slice(0, -1).join("."); + return this.options.structure[name].split('.').slice(0, -1).join('.'); }; // Return normalized language @@ -185,120 +185,120 @@ Configuration.prototype.get = function(key, def) { // Default configuration Configuration.DEFAULT = { - // Options that can"t be extend - "configFile": "book", - "generator": "website", - "extension": null, + // Options that can't be extend + 'configFile': 'book', + 'generator': 'website', + 'extension': null, // Book metadats (somes are extracted from the README by default) - "title": null, - "description": null, - "isbn": null, - "language": "en", - "direction": null, - "author": null, + 'title': null, + 'description': null, + 'isbn': null, + 'language': 'en', + 'direction': null, + 'author': null, // version of gitbook to use - "gitbook": "*", + 'gitbook': '*', // Search index - "search": { - "maxIndexSize": 1000000 + 'search': { + 'maxIndexSize': 1000000 }, // Structure - "structure": { - "langs": "LANGS.md", - "readme": "README.md", - "glossary": "GLOSSARY.md", - "summary": "SUMMARY.md" + 'structure': { + 'langs': 'LANGS.md', + 'readme': 'README.md', + 'glossary': 'GLOSSARY.md', + 'summary': 'SUMMARY.md' }, // CSS Styles - "styles": { - "website": "styles/website.css", - "print": "styles/print.css", - "ebook": "styles/ebook.css", - "pdf": "styles/pdf.css", - "mobi": "styles/mobi.css", - "epub": "styles/epub.css" + 'styles': { + 'website': 'styles/website.css', + 'print': 'styles/print.css', + 'ebook': 'styles/ebook.css', + 'pdf': 'styles/pdf.css', + 'mobi': 'styles/mobi.css', + 'epub': 'styles/epub.css' }, - // Plugins list, can contain "-name" for removing default plugins - "plugins": [], + // Plugins list, can contain '-name' for removing default plugins + 'plugins': [], // Global configuration for plugins - "pluginsConfig": { - "fontSettings": { - "theme": null, //"sepia", "night" or "white", - "family": "sans",// "serif" or "sans", - "size": 2 // 1 - 4 + 'pluginsConfig': { + 'fontSettings': { + 'theme': null, //'sepia', 'night' or 'white', + 'family': 'sans',// 'serif' or 'sans', + 'size': 2 // 1 - 4 } }, // Variables for templating - "variables": {}, + 'variables': {}, // Set another theme with your own layout - // It"s recommended to use plugins or add more options for default theme, though + // It's recommended to use plugins or add more options for default theme, though // See https://github.com/GitbookIO/gitbook/issues/209 - "theme": path.resolve(__dirname, "../theme"), + 'theme': path.resolve(__dirname, '../theme'), // Links in template (null: default, false: remove, string: new value) - "links": { + 'links': { // Custom links at top of sidebar - "sidebar": { - //"Custom link name": "https://customlink.com" + 'sidebar': { + //'Custom link name': 'https://customlink.com' }, // Sharing links - "sharing": { - "google": null, - "facebook": null, - "twitter": null, - "weibo": null, - "all": null + 'sharing': { + 'google': null, + 'facebook': null, + 'twitter': null, + 'weibo': null, + 'all': null } }, // Options for PDF generation - "pdf": { + 'pdf': { // Add toc at the end of the file - "toc": true, + 'toc': true, // Add page numbers to the bottom of every page - "pageNumbers": false, + 'pageNumbers': false, // Font size for the file content - "fontSize": 12, + 'fontSize': 12, // Paper size for the pdf // 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", + 'paperSize': 'a4', // How to mark detected chapters. - // Choices are “pagebreak”, “rule”, "both" or “none”. - "chapterMark" : "pagebreak", + // 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": "/", + // To disable use the expression: '/' + 'pageBreaksBefore': '/', // Margin (in pts) // Note: 72 pts equals 1 inch - "margin": { - "right": 62, - "left": 62, - "top": 56, - "bottom": 56 + 'margin': { + 'right': 62, + 'left': 62, + 'top': 56, + 'bottom': 56 }, //Header HTML template. Available variables: _PAGENUM_, _TITLE_, _AUTHOR_ and _SECTION_. - "headerTemplate": "", + 'headerTemplate': '', //Footer HTML template. Available variables: _PAGENUM_, _TITLE_, _AUTHOR_ and _SECTION_. - "footerTemplate": "" + 'footerTemplate': '' } }; |