UNPKG

1.88 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.12.7
2(function() {
3 var Dicts, _, consolidate, isCurrentPage, path, populateDynamic, replacePlaceholders, swig;
4
5 path = require('path');
6
7 _ = require('lodash');
8
9 swig = require('swig');
10
11 consolidate = require('consolidate');
12
13 Dicts = require('./dictionaries');
14
15 replacePlaceholders = require('./util').replacePlaceholders;
16
17 isCurrentPage = function(navNode, $nav) {
18 var ref;
19 if (navNode.isDynamic) {
20 return (ref = $nav.url) != null ? ref.match(navNode.linkRe) : void 0;
21 }
22 return $nav.url === navNode.link;
23 };
24
25 populateDynamic = function(template, variablesContext, defaults) {
26 var context;
27 context = _.assign({}, defaults, variablesContext);
28 return replacePlaceholders(template, context);
29 };
30
31 exports.register = function(consolidate, config) {
32 var dicts;
33 dicts = Dicts(config);
34 swig.setFilter('navIsCurrentPage', isCurrentPage);
35 swig.setFilter('navGetLink', function(navNode, $nav) {
36 if (isCurrentPage(navNode, $nav)) {
37 return $nav.url;
38 } else {
39 return populateDynamic(navNode.link, null, dicts.getDefaults());
40 }
41 });
42 swig.setFilter('navGetTitle', function(navNode, $nav) {
43 if (isCurrentPage(navNode, $nav) && navNode.isDynamic) {
44 return $nav.title;
45 } else {
46 return navNode.title;
47 }
48 });
49 swig.setFilter('navIsCurrentTree', function(navNode, $nav) {
50 var ref;
51 return !!((ref = $nav.path) != null ? ref[navNode.$id] : void 0);
52 });
53 return consolidate.requires.swig = swig;
54 };
55
56 exports.configureExpress = function(app, config) {
57 exports.register(consolidate, config);
58 app.engine('html', consolidate.swig);
59 app.set('view engine', 'html');
60 return app.set('views', path.resolve(config.rootDir, config.templatesDir));
61 };
62
63 exports.swig = swig;
64
65}).call(this);