summaryrefslogtreecommitdiffstats
path: root/lib/output/createTemplateEngine.js
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-04-24 18:52:37 +0200
committerSamy Pesse <samypesse@gmail.com>2016-04-24 18:52:37 +0200
commit19a1db8cb43431352d30dbc48aebb9cc8bf58eec (patch)
tree582b10a38610420b44fe91c3647c7fc448655d5c /lib/output/createTemplateEngine.js
parentc3275a4aa985710c0fcc9d3f7104bc5ebed2eb04 (diff)
downloadgitbook-19a1db8cb43431352d30dbc48aebb9cc8bf58eec.zip
gitbook-19a1db8cb43431352d30dbc48aebb9cc8bf58eec.tar.gz
gitbook-19a1db8cb43431352d30dbc48aebb9cc8bf58eec.tar.bz2
Add base structure for templating
Diffstat (limited to 'lib/output/createTemplateEngine.js')
-rw-r--r--lib/output/createTemplateEngine.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/output/createTemplateEngine.js b/lib/output/createTemplateEngine.js
new file mode 100644
index 0000000..810c41e
--- /dev/null
+++ b/lib/output/createTemplateEngine.js
@@ -0,0 +1,31 @@
+var Immutable = require('immutable');
+var TemplateEngine = require('../models/templateEngine');
+
+/**
+ Create template engine for an output.
+ It adds default filters/blocks, then add the ones from plugins
+
+ @param {Output} output
+ @return {TemplateEngine}
+*/
+function createTemplateEngine(output) {
+ var plugins = output.getPlugins();
+
+ var filters = plugins
+ .reduce(function(result, plugin) {
+ return result.merge(plugin.getFilters());
+ }, Immutable.Map());
+
+ var blocks = plugins
+ .map(function(plugin) {
+ return plugin.getBlocks();
+ })
+ .flatten();
+
+ return new TemplateEngine({
+ filters: filters,
+ blocks: blocks
+ });
+}
+
+module.exports = createTemplateEngine;