UNPKG

1.34 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, $nav) ->
10 if navNode.isDynamic
11 return $nav.url?.match(navNode.linkRe)
12 return $nav.url is navNode.link
13
14populateDynamic = (template, variablesContext, defaults) ->
15 context = _.assign({}, defaults, variablesContext)
16 return replacePlaceholders(template, context)
17
18exports.register = (consolidate, config) ->
19 dicts = Dicts(config)
20
21 swig.setFilter 'navIsCurrentPage', isCurrentPage
22
23 swig.setFilter 'navGetLink', (navNode, $nav) ->
24 if isCurrentPage(navNode, $nav)
25 return $nav.url
26 else
27 return populateDynamic(navNode.link, null, dicts.getDefaults())
28
29 swig.setFilter 'navGetTitle', (navNode, $nav) ->
30 if isCurrentPage(navNode, $nav) and navNode.isDynamic
31 return $nav.title
32 else
33 return navNode.title
34
35 swig.setFilter 'navIsCurrentTree', (navNode, $nav) ->
36 return !!$nav.path?[navNode.$id]
37
38 consolidate.requires.swig = swig
39
40exports.configureExpress = (app, config) ->
41 exports.register(consolidate, config)
42 app.engine('html', consolidate.swig)
43 app.set('view engine', 'html')
44 app.set('views', path.resolve(config.rootDir, config.templatesDir))
45
46exports.swig = swig