UNPKG

1.44 kBtext/coffeescriptView Raw
1path = require('path')
2_ = require('lodash')
3swig = require('swig')
4consolidate = require('consolidate')
5Dicts = require('./dictionaries')
6
7{ replacePlaceholders } = require('./util')
8
9isCurrentPage = (navNode, selfLink, navPath) ->
10 if navNode.isDynamic
11 return selfLink.match(navNode.linkRe)
12 if navPath
13 return navPath[navNode.$id]
14 return selfLink is navNode.link
15
16populateDynamic = (template, variablesContext, defaults) ->
17 context = _.assign({}, defaults, variablesContext)
18 return replacePlaceholders(template, context)
19
20exports.register = (consolidate, config) ->
21 dicts = Dicts(config)
22
23 swig.setFilter 'isCurrentPage', isCurrentPage
24
25 swig.setFilter 'getLink', (navNode, selfLink, navPath) ->
26 if isCurrentPage(navNode, selfLink, navPath)
27 return selfLink
28 else
29 return populateDynamic(navNode.link, null, dicts.getDefaults())
30
31 swig.setFilter 'getTitle', (navNode, selfLink, navPath, title) ->
32 if isCurrentPage(navNode, selfLink, navPath) and navNode.isDynamic
33 return title
34 else
35 return navNode.title
36
37 swig.setFilter 'isCurrentTree', (navNode, navPath) ->
38 return navPath[navNode.$id]
39
40 consolidate.requires.swig = swig
41
42exports.configureExpress = (app, config) ->
43 exports.register(consolidate, config)
44 app.engine('html', consolidate.swig)
45 app.set('view engine', 'html')
46 app.set('views', path.resolve(config.rootDir, config.templatesDir))
47
48exports.swig = swig