diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-01-19 15:05:13 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-01-19 15:05:13 +0100 |
commit | 8569a741033be6bb3dbfd6fd9ecd3c03f05319c3 (patch) | |
tree | 17615db0d7a73b8ef41c6901c768e8aaf13cf4c9 /lib/template.js | |
parent | b314972195b18df43ad3eba6266ae1ba1b1873e3 (diff) | |
download | gitbook-8569a741033be6bb3dbfd6fd9ecd3c03f05319c3.zip gitbook-8569a741033be6bb3dbfd6fd9ecd3c03f05319c3.tar.gz gitbook-8569a741033be6bb3dbfd6fd9ecd3c03f05319c3.tar.bz2 |
Use template before parsing glossary, summary and langs
Diffstat (limited to 'lib/template.js')
-rw-r--r-- | lib/template.js | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/template.js b/lib/template.js index 9576fe9..e4df84c 100644 --- a/lib/template.js +++ b/lib/template.js @@ -1,17 +1,38 @@ var _ = require("lodash"); +var Q = require("q"); var nunjucks = require("nunjucks"); var TemplateEngine = function(book) { this.book = book; + + // Nunjucks env + this.env = new nunjucks.Environment( + new nunjucks.FileSystemLoader(book.root), + { + // Escaping is done after by the markdown parser + autoescape: false + } + ); }; // Render a file from the book TemplateEngine.prototype.renderFile = function(filename) { var that = this; - return this.book.readFile(filename) - .then(function(content) { + return that.book.statFile(filename) + .then(function(stat) { + var context = { + // Variabels from book.json + book: that.book.options.variables, + + // infos about the file + file: { + path: filename, + mtime: stat.mtime + } + }; + return Q.nfcall(that.env.render.bind(that.env), filename, context); }); }; |