summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2016-03-09 15:18:57 +0100
committerSamy Pessé <samypesse@gmail.com>2016-03-09 15:18:57 +0100
commitd39f0d6ff01bb033a4afeb1f2eb449f933719b14 (patch)
tree4172644a021e28f0eb61c5eaa041bdf2a804d47f
parentbdbfbf7300ed6df752db996dfd865a695e0532fc (diff)
downloadgitbook-d39f0d6ff01bb033a4afeb1f2eb449f933719b14.zip
gitbook-d39f0d6ff01bb033a4afeb1f2eb449f933719b14.tar.gz
gitbook-d39f0d6ff01bb033a4afeb1f2eb449f933719b14.tar.bz2
Add "output" variables for templating
-rw-r--r--docs/templating/variables.md9
-rw-r--r--lib/output/base.js11
-rw-r--r--lib/output/ebook.js9
3 files changed, 28 insertions, 1 deletions
diff --git a/docs/templating/variables.md b/docs/templating/variables.md
index bca5880..8dbab98 100644
--- a/docs/templating/variables.md
+++ b/docs/templating/variables.md
@@ -12,6 +12,7 @@ The following is a reference of the available data during book's parsing and the
| `file` | File associated with the current page specific information |
| `summary` | Information about the table of contents |
| `languages` | List of languages for multi-lingual books |
+| `output` | Information about the output generator |
| `config` | Dump of the `book.json` |
### Book Variables
@@ -62,3 +63,11 @@ The whole table of contents (`SUMMARY.md`) can be accessed:
| `languages.list` | List of languages for this book |
Languages are defined by `{ id: 'en', title: 'English' }`.
+
+### Output Variables
+
+| Variable | Description |
+| -------- | ----------- |
+| `output.name` | Name of the output generator, possible values are `website`, `json`, `ebook` |
+| `output.format` | When `output.name == "ebook"`, `format` defines the ebook format that will be generated, possible values are `pdf`, `epub` or `mobi` |
+
diff --git a/lib/output/base.js b/lib/output/base.js
index 9c2153d..201eade 100644
--- a/lib/output/base.js
+++ b/lib/output/base.js
@@ -221,10 +221,19 @@ Output.prototype.onLanguageBook = function(book) {
// ---- Utilities ----
+// Return conetxt for the output itself
+Output.prototype.getSelfContext = function() {
+ return {
+ name: this.name
+ };
+};
+
// Return a default context for templates
Output.prototype.getContext = function() {
return _.extend(
- {},
+ {
+ output: this.getSelfContext()
+ },
this.book.getContext(),
this.book.langs.getContext(),
this.book.summary.getContext(),
diff --git a/lib/output/ebook.js b/lib/output/ebook.js
index ace5255..b0b05ca 100644
--- a/lib/output/ebook.js
+++ b/lib/output/ebook.js
@@ -21,6 +21,15 @@ var EbookOutput = assetsInliner(_EbookOutput);
EbookOutput.prototype.name = 'ebook';
+// Return context for templating
+// Incldue type of ebbook generated
+EbookOutput.prototype.getSelfContext = function() {
+ var ctx = EbookOutput.super_.prototype.getSelfContext.apply(this);
+ ctx.format = this.opts.format;
+
+ return ctx;
+};
+
// Finish generation, create ebook using ebook-convert
EbookOutput.prototype.finish = function() {
var that = this;