summaryrefslogtreecommitdiff
path: root/node_modules/nunjucks/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/nunjucks/index.js')
-rw-r--r--node_modules/nunjucks/index.js82
1 files changed, 82 insertions, 0 deletions
diff --git a/node_modules/nunjucks/index.js b/node_modules/nunjucks/index.js
new file mode 100644
index 0000000..237a362
--- /dev/null
+++ b/node_modules/nunjucks/index.js
@@ -0,0 +1,82 @@
+'use strict';
+
+var lib = require('./src/lib');
+var _require = require('./src/environment'),
+ Environment = _require.Environment,
+ Template = _require.Template;
+var Loader = require('./src/loader');
+var loaders = require('./src/loaders');
+var precompile = require('./src/precompile');
+var compiler = require('./src/compiler');
+var parser = require('./src/parser');
+var lexer = require('./src/lexer');
+var runtime = require('./src/runtime');
+var nodes = require('./src/nodes');
+var installJinjaCompat = require('./src/jinja-compat');
+
+// A single instance of an environment, since this is so commonly used
+var e;
+function configure(templatesPath, opts) {
+ opts = opts || {};
+ if (lib.isObject(templatesPath)) {
+ opts = templatesPath;
+ templatesPath = null;
+ }
+ var TemplateLoader;
+ if (loaders.FileSystemLoader) {
+ TemplateLoader = new loaders.FileSystemLoader(templatesPath, {
+ watch: opts.watch,
+ noCache: opts.noCache
+ });
+ } else if (loaders.WebLoader) {
+ TemplateLoader = new loaders.WebLoader(templatesPath, {
+ useCache: opts.web && opts.web.useCache,
+ async: opts.web && opts.web.async
+ });
+ }
+ e = new Environment(TemplateLoader, opts);
+ if (opts && opts.express) {
+ e.express(opts.express);
+ }
+ return e;
+}
+module.exports = {
+ Environment: Environment,
+ Template: Template,
+ Loader: Loader,
+ FileSystemLoader: loaders.FileSystemLoader,
+ NodeResolveLoader: loaders.NodeResolveLoader,
+ PrecompiledLoader: loaders.PrecompiledLoader,
+ WebLoader: loaders.WebLoader,
+ compiler: compiler,
+ parser: parser,
+ lexer: lexer,
+ runtime: runtime,
+ lib: lib,
+ nodes: nodes,
+ installJinjaCompat: installJinjaCompat,
+ configure: configure,
+ reset: function reset() {
+ e = undefined;
+ },
+ compile: function compile(src, env, path, eagerCompile) {
+ if (!e) {
+ configure();
+ }
+ return new Template(src, env, path, eagerCompile);
+ },
+ render: function render(name, ctx, cb) {
+ if (!e) {
+ configure();
+ }
+ return e.render(name, ctx, cb);
+ },
+ renderString: function renderString(src, ctx, cb) {
+ if (!e) {
+ configure();
+ }
+ return e.renderString(src, ctx, cb);
+ },
+ precompile: precompile ? precompile.precompile : undefined,
+ precompileString: precompile ? precompile.precompileString : undefined
+}; \ No newline at end of file