mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
42 lines
795 B
JavaScript
42 lines
795 B
JavaScript
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 that.book.statFile(filename)
|
|
.then(function(stat) {
|
|
var context = {
|
|
// Variables 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);
|
|
});
|
|
};
|
|
|
|
module.exports = TemplateEngine;
|