lib/index.js
function replaceMacro(code) {
		if (!re) return getKeys(code);
		var match = code.match(re);
		if (!match) return getKeys(code);

		var includeFile = match[1];
		includeFile = path.relative(self.config.root, path.join(path.dirname(fileName), includeFile));

		self._parse(includeFile, function (err, includeCode) {
			if (err) return callback(err);
			includeCode = '\n\r-- ' + macro + ' ' + match[1] + ':\n'
				+ includeCode
				+ '\n\r-- End of ' + match[1];
			code = code.replace(match[0], includeCode);
			replaceMacro(code);
		});
	}
function replaceMacro(code) {
		if (!re) return getKeys(code);
		var match = code.match(re);
		if (!match) return getKeys(code);

		var includeFile = match[1];
		includeFile = path.relative(self.config.root, path.join(path.dirname(fileName), includeFile));

		self._parse(includeFile, function (err, includeCode) {
			if (err) return callback(err);
			includeCode = '\n\r-- ' + macro + ' ' + match[1] + ':\n'
				+ includeCode
				+ '\n\r-- End of ' + match[1];
			code = code.replace(match[0], includeCode);
			replaceMacro(code);
		});
	}
function replaceMacro ( code ) { if ( ! re ) return getKeys ( code ) ; var match = code . match ( re ) ; if ( ! match ) return getKeys ( code ) ; var includeFile = match [ 1 ] ; includeFile = path . relative ( self . config . root , path . join ( path . dirname ( fileName ) , includeFile ) ) ; self . _parse ( includeFile , function ( err , includeCode ) { if ( err ) return callback ( err ) ; includeCode = '\n\r-- ' + macro + ' ' + match [ 1 ] + ':\n' + includeCode + '\n\r-- End of ' + match [ 1 ] ; code = code . replace ( match [ 0 ] , includeCode ) ; replaceMacro ( code ) ; } ) ; }
get included files
get included files