summaryrefslogtreecommitdiffstats
path: root/lib/parse/code_include.js
blob: f4656f1ca1a08dad6611217662dec92653977915 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var fs = require('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;
    });
};