UNPKG

803 Btext/coffeescriptView Raw
1async = require 'async'
2fs = require 'fs'
3pug = require 'pug'
4path = require 'path'
5
6module.exports = (env, callback) ->
7
8 class PugTemplate extends env.TemplatePlugin
9
10 constructor: (@fn) ->
11
12 render: (locals, callback) ->
13 try
14 callback null, Buffer.from @fn(locals)
15 catch error
16 callback error
17
18 PugTemplate.fromFile = (filepath, callback) ->
19 async.waterfall [
20 (callback) ->
21 fs.readFile filepath.full, callback
22 (buffer, callback) =>
23 conf = env.config.pug or {}
24 conf.filename = filepath.full
25 try
26 rv = pug.compile buffer.toString(), conf
27 callback null, new this rv
28 catch error
29 callback error
30 ], callback
31
32 env.registerTemplatePlugin '**/*.*(pug|jade)', PugTemplate
33 callback()