1 | const Handlebars = require('handlebars')
|
2 |
|
3 | let options = {}
|
4 |
|
5 | Handlebars.registerHelper({
|
6 | equal: (a, b, opts) => a === b ? opts.fn(this) : opts.inverse(this),
|
7 | unequal: (a, b, opts) => a !== b ? opts.fn(this) : opts.inverse(this)
|
8 | })
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | exports.setOptions = opts => { options = opts }
|
14 |
|
15 |
|
16 |
|
17 |
|
18 | exports.registerHelper = Handlebars.registerHelper.bind(Handlebars)
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 | exports.render = (template, data) => {
|
27 |
|
28 | if (!/{{([^{}]+)}}/g.test(template)) return template
|
29 |
|
30 | const handlebars = Handlebars.compile(template, {
|
31 | strict: options.debug,
|
32 | noEscape: true
|
33 | })
|
34 |
|
35 | return handlebars(data, { data: options })
|
36 | }
|