-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin.iced
44 lines (34 loc) · 1.09 KB
/
plugin.iced
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
fs = require 'fs'
path = require 'path'
jade = require 'jade'
regex = ///
include\s+ # @import followed by one or more whitespace chars
(.+) # capture any except single or double quote
///gi
exports.findImports = findImports = (imports, file, callback) ->
await fs.readFile file, 'utf8', defer err, contents
return callback err if err
newImports = []
while match = regex.exec contents
item = match[1]
item += '.jade' if path.extname(item) is ''
item = path.resolve path.dirname(file), item
unless item in imports
newImports.push item
imports.push item
for item in newImports
await findImports imports, item, defer err
return callback err if err
callback()
exports.compile = (file, flags, callback) ->
await fs.readFile file, 'utf8', defer err, contents
return callback err if err
try
contents = jade.compileClient contents,
filename: file
client: yes
compileDebug: no
catch err
return callback err
templateName = path.basename file, '.jade'
callback null, "JST['#{templateName}'] = #{contents};\n"