summaryrefslogtreecommitdiffstats
path: root/lib/parse/code_include.js
blob: 977dc3d5f7632ec864726a6654d6f68d66d00970 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var fs = require('graceful-fs');
var path = require('path');

module.exports = function(code, folder) {
    folder = folder || '';

    return code.replace(/{{([\s\S]+?)}}/g, function(match, filename) {
        // Normalize filename
        var fname = path.join(folder, filename.trim());

        // Try including snippet from FS
        try {
            // Trim trailing newlines/space of imported snippets
            return fs.readFileSync(fname, 'utf8').trimRight();
        } catch(err) {}

        // If fails leave content as is
        return match;
    });
};