summaryrefslogtreecommitdiffstats
path: root/lib/output/createTemplateEngine.js
diff options
context:
space:
mode:
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;